2012-11-07 308 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

相關問題