《笨办法学Python》 第17课手记

《笨办法学Python》 第17课手记

本节内容是前几节内容的复习和综合,此外引入了exists函数。

原代码如下:

from sys import argv
from os.path import exists

script, from_file, to_file = argv

print "Copying from %s to %s" %(from_file, to_file)

#we could do these two on the line too, how?
in_file = open(from_file)
indata = in_file.read()

print "The input file is %d bytes long" % len(indata)

print "Does the output file exist? %r" % exists(to_file)
print "Ready, hit RETURN to comtinue, CTRL-C to abort."
raw_input()

out_file = open(to_file, 'w')
out_file.write(indata)

print "Alright,all done."

out_file.close()
in_file.close()

结果如下:

exists函数是检查括号内字符串所代表的文件名的文件是否存在,存在返回True,不存在返回False。

请注意,这里作者所说的复制并不是使用了一个专门用来复制字符的函数,而是采用了变量赋值的方式实现复制。

in_file = open(from_file) #将open函数得到的结果(是一个文件,而不是文件的内容)赋值给in_file。
indata = in_file.read()   #使用read函数读取文件内容,并将文件内容赋值给indata。

剩下的在作者的常见问题解答中有提到,这里不再赘述。

本节课涉及的内容

cat 在C语言字符串操作里strcat也表示字符串连接的意思str(char dst, cahr src)中,如果dst是空的,也就是将src复制到dst的意思。

至于windows中cat的替代品。显示的话用的是Type,复制的话是copy。

len(),该函数返回的长度是指字节数。

indata = open(from_file).read(),是一种简化的写法,如果你想化简上面的代码,可以尝试使用这种形式来写。

下面是可能的一种简写方法,一行写出来我做不到,除非使用cat。

 from sys import argv
 script, from_file, to_file = argv
 to_file = open(to_file, 'w') 
 to_file.write( open(from_file).read())

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Vue ssr

Promise 源码分析

        3、外部一种实现promise的源码:https://github.com/ygm125/promise/blob/master/promise...

65350
来自专栏技术博客

Asp.net MVC Jquery提交后乱码问题

最近在处理MVC时,遇到要将特殊字符,或者XML格式的数据传递到后台,但是后台解析发现无法识别,处理有误。

19820
来自专栏web前端

Vuejs --03 模板语法

一、插值      1、文本 <span>{{msg}}</span> //mustache语法 <span v-once>{{msg}}</spa...

20890
来自专栏机器学习从入门到成神

2015百度校招笔试真题以及解析(二)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/articl...

22820
来自专栏数值分析与有限元编程

Fortran知识 | 代码错误(无法解析的外部符号)

如图所示,提示为:无法解析的外部符号。 ? 找不到某些函数或子程序。如果这些函数或子程序在函数库中,没有正确被使用;如果被提示的函数应该是数组,可能没有定义为数...

39690
来自专栏python爬虫日记

转载、Python的编码处理(二)

然后,大多数人的做法是,调用encode/decode进行调试,并没有明确思考为何出现乱码

10520
来自专栏散尽浮华

shell脚本之特殊符号总结性梳理

# 井号 (comments) 这几乎是个满场都有的符号 #!/bin/bash 井号也常出现在一行的开头,或者位于完整指令之后,这类情况表示符号后面的是注...

216100
来自专栏学习有记

XML进阶:Level 1 - XML简介

13430
来自专栏大前端_Web

javascript的replace+正则 实现ES6的字符串模版

版权声明:本文为吴孔云博客原创文章,转载请注明出处并带上链接,谢谢。 https://blog.csdn.net/wkyseo/articl...

10540
来自专栏PHP在线

shell脚本编程入门

什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_tut for ((i=0; i<1...

34260

扫码关注云+社区

领取腾讯云代金券