2015-10-19 103 views
-3

我得到了一個17列和幾百行的文本文件。如何僅將第nr2,14和16列提取到僅包含3列python腳本的另一個文件?我想和17列的文件到一個新的文件,只有那些從文件中提取列到另一個文件

+1

你能告訴你已經嘗試了什麼,取樣輸入數據,任何錯誤和所需的輸出,謝謝。 – EdChum

+0

我還沒有嘗試過任何東西,我新來python和不知道如何做這部分 –

+0

也許你可以從你的文本文件中添加一些示例行。列是如何分開的? –

回答

0

下應在標準Python的工作,它使用Python的csv模塊來自動處理列:

import csv 

with open('input.txt', 'rb') as f_input, open('output.txt', 'wb') as f_output: 
    csv_input = csv.reader(f_input) 
    csv_output = csv.writer(f_output) 
    csv_output.writerows([cols[1], cols[13], cols[15]] for cols in csv_input) 

使用Python 2.7.6進行測試。 Python中的註釋列表從索引0開始。

對於Python 3,使用以下命令:

import csv 

with open('input.txt', 'r') as f_input, open('output.txt', 'w', newline='') as f_output: 
    csv_input = csv.reader(f_input) 
    csv_output = csv.writer(f_output) 
    csv_output.writerows([cols[1], cols[13], cols[15]] for cols in csv_input) 
+0

我得到這個錯誤:TypeError:一個整數是必需的(得到的類型str) –

+0

不知道你是怎麼得到的?你正在使用哪個版本的Python?我建議你複製粘貼代碼並確保縮進是正確的。 –

+0

哦,對不起,我沒有爲python 3做。現在工作,Thx! –

0

3,你可以使用nympy

import csv 
import numpy as np 
data = np.array(x for x in csv.reader(open("your_file"))) 
data[0::, column_number] 
      ^^^ 
      replace column_number with the number you want 
相關問題