在python中逐行复制文件

jgr*_*208 5 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()
Run Code Online (Sandbox Code Playgroud)

And*_*ark 12

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

for line in f:
    copy.write(line)
Run Code Online (Sandbox Code Playgroud)

文件对象上文档:

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

>>> for line in f:
        print line,
Run Code Online (Sandbox Code Playgroud)


che*_*ner 8

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

f = open("...", "r")
copy = open("...", "w")
for line in f:
    copy.write(line)
f.close()
copy.close()
Run Code Online (Sandbox Code Playgroud)