我有一个与 Python 中的文件输入和输出有关的问题(这是这个问题的延续:如何从数据文件中提取特定行,现在已经解决)。
所以我有一个大文件danish.train
和 11 个小文件(称为danish.test.part-01
等等),每个文件都包含从danish.train
文件中选择的不同数据。现在,对于十一个文件中的每一个,我都想创建一个补充文件。这意味着对于每个小文件,我想创建一个文件,其中包含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)
,我会得到一个 output danish.train.part-02
,但是这个输出包含一个完整的副本,而不会像我想要danish.train
的那样遗漏文件的内容。danish.test.part-02
我怀疑这些问题可能与我对with... as
运营商没有完全了解有关,但我不确定。任何帮助将不胜感激。