当前位置: 代码迷 >> python >> 将行复制到python
  详细解决方案

将行复制到python

热度:68   发布时间:2023-06-13 15:17:13.0

我正在尝试编写一个程序,将所有其他行从thisFile.txtthatFile.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()

您已经打开了两个文件以进行读取和写入,但是在写入第一个文件后,期望立即从该文件读取。 文件指针位于文件末尾。 如果.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()

解决第一个问题(复制所有行)。 您需要在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()即可遍历列表并仅提供键为偶数的行。 您当然可以更改为奇数。