我有一个问题,它与Python中的文件输入和输出有关(这是对此问题的延续:how to extract specific lines from a data file,现已解决)。基于另一个文件的内容的文件输出
所以我有一个很大的文件,danish.train
,十一小文件(称为danish.test.part-01
等),他们每个人包含从danish.train
文件不同的选择数据。现在,对于这11个文件中的每一个,我想创建一个与之相配的附加文件。这意味着对于每个小文件,我想创建一个文件,其中包含danish.train
的内容减去已经在小文件中的部分。
我想出来的,到目前为止是这样的:
trainFile = open("danish.train")
for file_number in range(1,12):
input = open('danish.test.part-%02d' % file_number, 'r')
for line in trainFile:
if line not in input:
with open('danish.train.part-%02d' % file_number, 'a+') as myfile:
myfile.write(line)
的问题是,这个代码只给出了file_number 1输出,虽然我已经从1-11循环。如果我改变范围,例如到in range(2,3)
,我得到一个输出danish.train.part-02
,但是这个输出包含整个danish.train
的一个副本而不会忽略文件danish.test.part-02
的内容,如我所愿。
我怀疑这些问题可能与我没有完全了解with... as
运营商有关,但我不确定。任何帮助将不胜感激。
非常感谢你!这真的很有帮助! – Johanna