运行此代码会按预期创建file2.txt,但该文件为空。 (注意:file1.txt只有一首诗的行。)为什么会这样?如何将数组a2写入文本文件?
import copy
#Open input file, read it into an array, and remove the every other line.
f = open('file1.txt','r')
a1 = f.readlines()
a2 = copy.deepcopy(a1)
f.close
for n in range(len(a1)):
if n%2 == 0:
a2.remove(a1[n])
# Open output file and write array into it.
fo = open('file2.txt','w')
fo.writelines(a2)
fo.close
答案 0 :(得分:2)
答案 1 :(得分:2)
你会意识到这更好地写成:
from itertools import islice
with open('input') as fin, open('output','w') as fout:
every_other = islice(fin, None, None, 2)
fout.writelines(every_other)
推理:
islice
可用于为每个其他行创建生成器.writelines()
with
语句(上下文管理器)随后会自动关闭文件答案 2 :(得分:1)
正如评论所说,您忘记关闭文件,因此缓冲区永远不会被刷新。
替换
fo.close
带
fo.close()
答案 3 :(得分:0)
'close'是一种方法 - 是。用for.close()代替for.close