我正在尝试编写一个程序,将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()
答案 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()
循环遍历列表并仅提供其键为偶数的行。你当然可以改为奇数。