将行复制到python中

时间:2015-10-22 02:51:34

标签: python file python-3.x

我正在尝试编写一个程序,将thisFile.txt中的所有其他行复制到thatFile.txt,但是现在,我很难从thisFile.txt获取行复制到thatFile.txt

我尝试使用两种不同的方法进行复制,一种是注释掉的,另一种是在注释部分之前的for循环中。

file_one=open('thisFile.txt','w+')
file_two=open('thatFile.txt','w+')

file_one.write('Hello\nHow\nAre\nYou')

for line in file_one:
    file_two.write(line)

#line=' '
#while line !='':
#    line=file_one.readline()
#    file_two.write(line)

file_one.close()
file_two.close()

2 个答案:

答案 0 :(得分:1)

您已经打开了两个文件进行读写,但写入第一个文件后,希望立即从该文件中读取。文件指针位于文件的末尾。如果您.seek(0)回到文件的开头,它将起作用:

file_one=open('thisFile.txt','w+')
file_two=open('thatFile.txt','w+')

file_one.write('Hello\nHow\nAre\nYou')

# rewind the file to prep for read.
file_one.seek(0)

for line in file_one:
    file_two.write(line)

file_one.close()
file_two.close()

答案 1 :(得分:0)

解决第一个问题(复制所有行)。您需要在mode='r'中打开所需的文件,然后写入下一个使用mode='w'打开的文件(或简称为'r''w')。

with open('test.txt', 'r') as f1:
    lines = f1.readlines()
    with open('test2.txt', 'w') as f2:
        for line in lines:
            f2.write(line)

对于第一个文件,您可以readlines()实际读取每一行。

解决第二个问题(每隔一行):

with open('test.txt', 'r') as f1:
    lines = f1.readlines()
    with open('test2.txt', 'w') as f2:
        for i,line in enumerate(lines):
            if i % 2 == 0:
                f2.write(line)
            else:
                pass

您只需要实现enumerate()循环遍历列表并仅提供其键为偶数的行。你当然可以改为奇数。