在python中逐行复制文件

新手上路,请多包涵

我正在编写一个 python 程序来将一个文件逐行复制到一个新文件中。我的代码如下,其中我使用循环逐行复制文件。

但是,由于文件中的行数可能会发生变化,有没有办法在 python 中逐行复制文件而不使用依赖数字的循环,而是依赖诸如 EOF 字符之类的东西来终止循环?

 import os
import sys

i = 0
f = open("C:\\Users\\jgr208\\Desktop\\research_12\\sap\\beam_springs.$2k","r")
copy = open("C:\\Users\\jgr208\\Desktop\\research_12\\sap\\copy.$2k","wt")
#loop that copies file line by line and terminates loop when i reaches 10
while i < 10:
     line = f.readline()
     copy.write(str(line))
     i = i +1
f.close()
copy.close()

原文由 jgr208 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 520
2 个回答

您可以通过遍历文件对象本身来遍历 Python 文件对象中的行:

 for line in f:
    copy.write(line)

来自 文件对象 的文档:

另一种读取行的方法是遍历文件对象。这是内存效率高,速度快,并导致更简单的代码:

 >>> for line in f:
        print line,

原文由 Andrew Clark 发布,翻译遵循 CC BY-SA 3.0 许可协议

可以直接迭代文件,无需显式调用 readline

 f = open("...", "r")
copy = open("...", "w")
for line in f:
    copy.write(line)
f.close()
copy.close()

原文由 chepner 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题