打开输入和输出文件时命令是否重要?

时间:2014-11-18 19:47:59

标签: python file

写/读文件时是否有正确的顺序?这就是我通常做的事情:

  1. 打开“写”文件
  2. 打开“阅读”文件
  3. 遍历“阅读”
  4. 写入“写入”文件
  5. with open(path + 'write_file.txt', 'wb') as txtout:
        with open(path + 'read_file.txt', 'rb') as txtin:
            for line in txtin:
                txtout.writelines(line)
    

    有没有理由先打开输入文件?而不是先打开输出文件?

3 个答案:

答案 0 :(得分:3)

1)首先打开输入文件,然后打开输出文件。这样,如果输入文件不存在,您可以在不首先创建(现在无用的)输出文件的情况下报告该错误。

2)迭代输入文件(正如您所做),而不是调用file.read()file.readlines()。调用其中一个函数可以使用基本上无限量的内存。

3)在您提供的特定情况下,请使用shutils.copyfileobjshutils.copyfile

答案 1 :(得分:0)

您可以执行以下任一操作:

with open("file_write", 'w') as f1, open("file_read") as f2:
      # bla bla bla

或者这个:

with open("file_read") as f1, open("file_write", 'w') as f2:

没有任何区别。当然,如果你的输入文件确实存在的话。随着' w' flag,如果文件不存在,将创建/覆盖该文件。但read操作的文件对象将返回为" False"即不存在。事实上,只要您想访问不存在的读取文件,它就会生成错误。

答案 2 :(得分:0)

我建议先阅读该文件。如果文件不存在并且写入操作不会开始,则会出错。