Ex17 More Files

文件内容合并

经过上一节练习,初步接触了文件读写操作。在 Ex17 将要继续练习文件的读写。这次要把某个指定文件的内容 copy 到另外一个目标文件里。

示例代码 Ex17:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
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 one line, 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 continue, 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()

运行结果如图:

小结

  1. 这个练习的主题: 打开一个文件,把他的内容复制到另外一个文件中。这需要几个步骤: 打开原文件 -> 读取原文件,并把内容复制给中间变量 -> 打开目标文件 -> 中间变量写入目标文件 -> 关闭原文件和目标文件
  2. 在实际编程中,代码有两处设计别有用心: (1) 判断目标文件命是否存在;(2) 计算原始文档的内容长度。
  3. 最后,文件操作完毕后,要把目标文件关闭。用意何在?
Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计