所以,在botom是我改编的代码。首先,我拿了你的代码,并在一个名为的函数中重构它merge。此功能,与您通话与inputFiles和outputFileName。在您的第一种情况下,您将其称为:merge(sorted(glob('*.csv')), 'VIC.csv')现在你有2组数据。我们不是在所有.csv输入文件上调用它,而是仅在VIC.csv输入文件上调用它:merge(sorted(glob('*VIC1.csv')), 'VIC.csv')然后我们重复QLD文件。完整代码如下所示。from glob import globdef merge(inputFiles, outputFileName):with open(outputFileName, 'w') as fi_out:
for i, fname_in in enumerate(inputFiles):
with open(fname_in, 'r') as fi_in:
for i_line, line in enumerate(fi_in):
(i_line > 0)
if i_line > 0 or i == 0:
fi_out.write(line)
merge(sorted(glob('*VIC1.csv')), 'VIC.csv')merge(sorted(glob('*QLD1.csv')), 'QLD.csv')一个次要的重构,不需要跟踪正在处理的文件或行。def merge(inputFiles, outputFileName):inputFiles = iter(inputFiles)
with open(outputFileName, 'w') as fi_out:
#process the first file
with open(next(inputFiles)) as first_file:
fi_out = firstfile.read()
#now just skip the first line in the other files
for fname in inputFiles:
with open(fname_in, 'r') as fi_in:
skip = next(f_in)
fi_out.write(fi_in.read())