2014-09-30 74 views
-3

我有一個具有大量數據的文件,如下圖所示:從一個文件中讀取數據和寫入多個文件

inputfile中:

 MOLECULE=AMMONIA 
    N    0.0000000000 0.0000000000 10.0000000000 
    H    0.5883730000 0.5883730000 10.5883730000 
    H    -0.5883730000 -0.5883730000 10.5883730000 
    MOLECULE=AMMONIA 
    N    -0.3476074320 -0.2347533040 9.3713354700 
    H    0.2407655680 0.3536196960 9.9597084700 
    H    -0.9359804320 -0.8231263040 9.9597084700 
    MOLECULE=AMMONIA 
    N    -1.2368117200 -0.5350340580 8.7012089080 
    H    -0.6484387200 0.0533389420 9.2895819080 
    H    -1.8251847200 -1.1234070580 9.2895819080 

我需要一個bash腳本讀取所有的行從這個文件,並將其寫入到多個輸出文件象下面這樣:

outputfile1:

 MOLECULE=AMMONIA 
    N    0.0000000000 0.0000000000 10.0000000000 
    H    0.5883730000 0.5883730000 10.5883730000 
    H    -0.5883730000 -0.5883730000 10.5883730000 

outputfile2:

 MOLECULE=AMMONIA 
    N    -0.3476074320 -0.2347533040 9.3713354700 
    H    0.2407655680 0.3536196960 9.9597084700 
    H    -0.9359804320 -0.8231263040 9.9597084700 

outputfile3:

 MOLECULE=AMMONIA 
    N    -1.2368117200 -0.5350340580 8.7012089080 
    H    -0.6484387200 0.0533389420 9.2895819080 
    H    -1.8251847200 -1.1234070580 9.2895819080 

我試圖readarray,但是它存儲在1-d陣列現在換行符的一切。你能用一行或一小段腳本來幫助我嗎?謝謝!

+4

你的代碼在哪裏? – 2014-09-30 17:34:18

+1

這個問題似乎是脫離主題,因爲它是一個「我可以haz teh codez plz」問題 – inspectorG4dget 2014-09-30 17:39:02

回答

1
with open('path/to/input') as infile: 
    i = 0 
    f = open('outfile%d'%i, 'w') 
    for line in infile: 
     if line.lstrip().startswith("MOLECULE"): 
      f.close() 
      i += 1 
      f = open('outfile%d'%i, 'w') 
     f.write(line) 
相關問題