源代码如下:
1 from sys import argv 2 from os.path import exists 3 4 script, from_file, to_file = argv 5 6 print "Copying from %s to %s" % (from_file, to_file) 7 8 # We could do these two on one line too, how? 9 input = open(from_file) 10 11 12 indata = open(from_file).read() 13 14 print "The input file is %d bytes long" % len(indata) 15 16 print "Does the output file exist? %r" % exists(to_file) 17 print "Ready, hit RETURN to continue, CTRL-C to abort." 18 raw_input() 19 20 output = open(to_file, 'w') 21 output.write(indata) 22 23 print "Alright, all done." 24 25 output.close() 26 input.close()
运行结果:
加分习题2,写成一行,代码如下:
1 from sys import argv 2 3 script, from_file, to_file = argv 4 5 """ 6 in_file = open(from_file) 7 indata = in_file.read() 8 out_file = open(to_file, 'w') 9 out_file.write(indata) 10 """ 11 12 open(to_file, 'w').write(open(from_file).read())
但是没弄明白为啥下面这种写法就不用close
20170916 学习22课时问了师父,因为open的返回值没有变量接收,用完就释放了,所以不需要close,有点理解,还要再继续消化一下!