2014-01-10 257 views
-1

我想從文本文件創建和寫入新文件。 我面臨的挑戰是如何獲取特定列的內容。讀取文本文件並從特定內容寫入文件

輸入文件被搞亂了。

例如,

input.txt(製表符分隔的:列的總數跨行不同)

CATEGORY  NEIGHBOUR  NUMBER1 NUMBER2  TOTAL 
city   Washington 30  50   80 
county  mountain  in  seattle  10  4   30 
community  church  men  15   5   4 

output.txt(我想什麼來創建每行3列。)

CATEGORY      NUMBER1  TOTAL  
city Washington    30   80 
county mountain in seattle 10   30 
community church men   15   4 

我該怎麼做才能這樣寫呢?

+2

雖然定義良好,但是您還沒有真正向我們展示過迄今爲止嘗試過的東西嗎?你可以這樣做嗎? – BlackVegetable

+0

[Python解析CSV正確]的可能重複(http://stackoverflow.com/questions/12296585/python-parse-csv-correctly) –

+0

你真的關心列的左對齊,還是會製表符分隔輸出足夠了嗎? – DSM

回答

1

你可以試試這個python腳本:

file_in = open('input.txt', 'r') 
file_out = open('output.txt', 'w') 

for line in file_in: 
    line = line.rstrip() 
    line = line.split('\t') 

    CATEGORY = ' '.join(line[:-3]) ##set variable as beginning of line 
            ##to before 3rd last column 
    NUMBER_1 = line[-3] ##set variable as 3rd last column 
    TOTAL = line[-1] ##set variable as last column 

    file_out.write('%s\t%s\t%s\n' % (CATEGORY, NUMBER_1, TOTAL)) 

file_in.close() 
file_out.close() 
  • 運行腳本由:python <ABOVE_SCRIPT>.py(假定input.txt中是在同一個目錄中該腳本)
  • 輸出將在標題行中返回「NEIGHBOR」output.txt ...你總是可以擦除它
0

嘗試這樣:

lines = open('in_file', 'r').readlines() 
for line in lines: 
    fields = line.split('\t') 
    ... 
相關問題