我一直在尝试获取输入文件的某些行,所以我使用文件“inputfile”来获取偶数行。在输出文件中写入循环结果
f= open('inputfile.txt', 'r')
for i,line in enumerate(f):
if i%2==0:
print line
这样,我得到打印的线条,但是,但是,我不知道如何将这些结果行发送到输出文件,因为当我最初试图做到这一点,我只是得到了第一线。我能做什么?
我一直在尝试获取输入文件的某些行,所以我使用文件“inputfile”来获取偶数行。在输出文件中写入循环结果
f= open('inputfile.txt', 'r')
for i,line in enumerate(f):
if i%2==0:
print line
这样,我得到打印的线条,但是,但是,我不知道如何将这些结果行发送到输出文件,因为当我最初试图做到这一点,我只是得到了第一线。我能做什么?
最有效的方法得到公正的偶数行是使用itertools.islice()
并只选择每2项:
from itertools import islice
with open('inputfile.txt', 'r') as infile, open('outputfile.txt', 'w') as outfile:
outfile.writelines(islice(infile, 0, None, 2))
用你的方法工作得很好过,只要你写的行在循环 :
with open('inputfile.txt', 'r') as infile, open('outputfile.txt', 'w') as outfile:
for i, line in enumerate(f):
if i % 2 == 0:
outfile.write(line)
您的方法很好,恭喜。如果你想把结果写到另一个文件中,你可以用同样的方法来完成,只是略有不同。
input_file = ('inputfile.txt', 'w')
output_file = ('outputfile.txt', 'w')
for i,line in enumerate(input_file):
if i%2==0:
output_file.write(line)
而且,这样你就不会忘记关闭该文件在程序结束时,建议使用with
语句,马亭表明
with open('inputfile.txt', 'r') as input_file, open('outputfile.txt', 'w') as output_file:
我认为,马亭/ alKid的答案是你应该去的,但是为了完整起见,我会补充说你可以按原样运行你的脚本,将行打印到标准输出(即在这种情况下的控制台),并且只是重定向输出到一个文件:python my_script.py > output.txt
你在做什么,当你最初试过了吗?你能告诉我们吗? –