file3 = open("over_speeding.txt", "r")
file5 = open("fine.txt", "r")
file6 = open("all details.txt", "a")
x, y = file3.readlines(), file5.readlines()
if file6 == file6.close(): #this just an argument to get the if loop going
print("not working")
else:
num = 0 # the of the file that will be appended
file6.write(y[num] + x[num])
num += 1
file3.close()
file5.close()
file6.close()
file6 = open("all details.txt", "r")
file66 = file6.read()
print(file66)
这里我试图将两个4行文件合并到一个新文件中,例如file5的第一行附加了file3中的第一行,依此类推。
在if循环我想检查天气文件6是否打开,这不起作用,你能告诉我另一个我可以使用的参数。我试图在没有循环的帮助下输出到文件中,但效率非常低,输出的格式很难改变。
在else循环中如果文件未关闭,则file3和file5行中的信息将根据变量num whih增加1附加,如果num = 4则将停止,我还没有为它编写代码因为我不知道怎么做。
shell中输出的错误是:
file6.write(y[num] + x[num])
ValueError: I/O operation on closed file.
你可以修复这个错误吗?如果可能的话,请告诉我如何在这个上使用for或while循环而不是if循环
答案 0 :(得分:2)
这样做:
from itertools import zip_longest # izip_longest in Python2
with open("over_speeding.txt") as speeding, open("fine.txt") as fine, open("all details.txt", "a") as everything:
for speedline, fineline in zip_longest(speeding, fine, fillvalue=""):
everything.write(speedline.strip() + fineline.strip() + "\n")