2010-03-09 130 views
0

我已經開了一個CSV文件,我想每一個是逗號分隔的字符串進行排序,並在同一行:如何從csv文件分開逗號分隔的數據?

前::文件:

name,sal,dept 
tom,10000,it 

O/P ::每個串串可變

我有一個文件,該文件已經打開,所以我不能用「開放」的API,我必須使用「csv.reader」這不得不一次讀取一行。

+3

@Rahul,對不起,我不明白你在問什麼。你能提供你的輸入和期望的輸出塊引用的例子嗎? – MattH 2010-03-09 10:42:47

+0

你問如何使用csv? http://docs.python.org/library/csv.html文檔有什麼問題? – 2010-03-09 10:57:36

回答

0

我不知道我是否正確地理解你的問題。你可能想看看反正在Python documentation描述的分裂功能。

+0

我只想從csv文件的行中獲取數據,因爲我的第一行文件包含字段名稱,並且所有行都包含數據。 – Rahul99 2010-03-09 13:19:51

2

如果打開文件進行讀取綁定到一個變量名,說fin;假設你正在使用Python 2.6,你知道該文件不是空的(至少具有標題行):

import csv 

rd = csv.reader(fin) 
headers = next(rd) 
for data in rd: 
    ...process data and headers... 

在Python 2.5,使用headers = rd.next()代替headers = next(rd)

這些版本的使用領域data的列表,這是一個完全通用的解決方案(即不需要事先知道文件有多少列有:你訪問它們爲data[0],等,和當前行具有len(data)字段在循環的每個腿)。

如果知道該文件具有完全相同的三列,並更願意使用不同的名稱,每列有一個變量,在環頭更改爲:

for name, sales, department in rd: 

現場數據由讀寫器(就像是返回標題)都是字符串。如果您知道的例子,第二列是一個int,並希望把它當作這樣的,開始循環與

for data in rd: 
    data[1] = int(data[1]) 

,或者,如果您使用的命名變量變異:

for name, sales, department in rd: 
    sales = int(sales)