2012-11-07 206 views
-4

我想做到以下几点:读取多个文本文件,并写入到一个文件中的一列

  1. 读取多个ASCII文件(* .txt)到内存中。我需要跳过每个文件的前4行。这些文件中的整数值被写入非结构化和连续的行。每行值的数量可能会有所不同,并不重要。
  2. 一旦我读取了内存中的所有数据,我需要将它写入一个单一文件,每行一个值,即一列。在写入值之前,我需要写出3行标题。

我需要这个脚本,我可以从终端(Bash)调用。我感谢您的帮助!

+3

是,和?有问题吗? – thescientist

+0

向我们展示两个示例输入文件和预期输出 – inspectorG4dget

+0

阅读本文http://stackoverflow.com/questions/how-to-ask – jsj

回答

0

你的问题很模糊,但我想出了这个:

这是我的假设:

  1. 在文本文件中的每一行的“值”是由空格分隔
  2. 输出文件将按包含它们的文件的顺序包含值。因此,如果函数的参数为​​f1,f2,f3outfilepath,则f1中的值首先出现在中和f2值出现在第二outfilepath

这里,你想要在这些假设下什么功能:

def readwrite(infilepaths, outfilepath): 
    with open(outfilepath, 'w') as outfile: 
     outfile.write(threeLinesOfHeader + '\n') 
     for infilepath in infilepaths: 
      with open(infilepath) as infile: 
       skipLines = 4 
       for _ in range(skipLines): 
        infile.readline() 
       values = itertools.chain.from_iterable(line.strip().split() for line in infile) 
       outfile.write('\n'.join(values) + '\n') 
    print 'done' 

希望这有助于

+0

非常感谢!对我来说还有一个问题:我怎样才能跳过每个infile的前四行?使用四次'file.next()'对我来说听起来有点不灵活。 – Andre

相关问题