#coding: utf-8
# 我们这次试图讲一个文件中的内容复制到另外一个文件中,要运行这个程序要输入两个参数,一个是已经有的txt文件,一个是新的txt文件,比如python ex17.py test.txt new_text.txt (假定我已经有了一个test.txt的情况下)
from sys import argv # 常规调用argv,使程序运行参数
from os.path import exists # 导入新的命令exists,这个命令将文件名字符串作为参数,如果文件存在的话,它将返回True,否则返回False
script, from_file, to_file = argv # 将要输入的两个参数分别命名为from_file和to_file
print "Copying from %s to %s" % (from_file, to_file)
# we could do these two on one line too, how?
in_file = open(from_file) # 使from_file的内容打开并赋值到in_file中
indata = in_file.read() # 再将其读取出来
#这两行也可以这样写:indata = open(from_file).read(),但此时就无须进行in_file.close()了,因为这个中间变量直接被省略了
print "The input file is %d bytes long" % len(indata) # len()输出内容的长度
print "Does the output file exist? %r" % exists(to_file) # 是或否返回
print "Ready, hit RETURN to continue, CTRL-C to abort."
raw_input() # 这里有点意思,这个是一个"暂停符",如果回车在继续进行,^C就退出
out_file = open(to_file, 'w') # 以写入为选项open它, 并赋值out_file
out_file.write(indata) # 将out_file写入indata
print "Alright, all done."
out_file.close() # 关闭它们
in_file.close()
# 这个程序有点意思,我们不妨整理一下他的变量与思路:
# 申明from_file和to_file ---- 将from_file内容打开放进in_file中(此时是一个file文件,不是变量形式)
# ---- 将in_file里面的内容放进indata中 ---- 将to_file以写入方式读取他并命名为out_file,此时out_file的改动使得to_file也发生改动
# ---- 将indata的内容写入out_file中 ---- 保存out_file和in_file