0

在Python Multiple file writing question上提出了一个类似的问题,但它并没有解决我的问题,因为文件描述符是唯一的,而且我不知道如何在循环中动态创建文件描述符。

我有一个巨大的文件,格式如下:

field1  field2  field3  field4  field5
a   _   b   _   c
d   e   f   g   g
l   _   _   m   _
_   n   o   _   p

我需要创建 5 个单独的文件“field1.txt”、“field2.txt”、“field3.txt”、“field4.txt”和“field5.txt”。

我只想读取一次输入文件。对于每一行,我检查是否一个字段不是空白('_'),然后将完整的行写入以相应字段名称开头的文件中。

例如,由于第 1 行的第一个、第三个和第五个字段不为空,因此该行将写入文件“field1.txt”、“field3.txt”和“field5.txt”。

4

1 回答 1

2

想到这样的事情:

# TESTED
f = open('inputfile.txt')
line1 = next(f)
line1 = line1.split()
output_files = [open(fname+'.txt', 'w') for fname in line1]

for line in f:
  for output_file, field in zip(output_files, line.split()):
    if field != '_':
      output_file.write(line)
于 2013-04-22T20:28:51.873 回答