2011-03-09 57 views
-3

我想知道我們是否能夠通過指定行號來獲取csv文件的第n行。 PLZ幫助如何獲取csv文件的第7行

+0

鑑於你前面的問題,也許你會告訴我們你爲什麼要這麼做?是怎麼做的參與實現更多的主要目標? – 2011-03-09 11:05:04

回答

0
import csv 


def get_line_from_filename(csv_filename, n): 
    with open(csv_filename) as f: 
     for i, line in enumerate(csv.reader(f, delimiter=','), 1): 
      if i == n: 
       return line 

編輯:

使用linecache module。無論它是否爲CSV文件都沒關係。這很可能是新行分隔,所以只需使用linecache模塊。

import linecache 

linecache.getline(filename, lineno) 
+0

-1行和行在CSV文件中不相同。示例文件內容:'row1,99,「x \ r \ ny」\ r \ nrow2,88,heading2 \ r \ n'有2行3行。 – 2011-03-09 11:01:58

+0

我實際上編輯了我的原始答案,它使用了csv模塊。雖然好點。 – 2011-03-09 11:11:34

+0

@John Machin你是什麼意思?我用open('try.txt','wb')做了''''''f.write('row1,99,「x \ r \ ny」\ r \ nrow2,88,heading2 \ r \ n')''並用** csv **分析了'try.txt'文件。結果是** [['row1','99','x \ r \ ny'],['row2','88','heading2']]''用** dialect ='excel'**它是''[''row1,99,'x'],['y''',['row2,88,heading2']]''with ** dialect ='excel-tab'** – eyquem 2011-03-09 11:26:23

1
import csv 
from itertools import islice 

entries = csv.reader(open('/opt/workspace/jup/juppro/media/docs/phonebook.csv', 'rb'), dialect='excel-tab') 

list(islice(entries,6)) 
print entries.next() 

import csv 
from itertools import islice 

entries = csv.reader(open('/opt/workspace/jup/juppro/media/docs/phonebook.csv', 'rb'), dialect='excel-tab') 

print list(islice(entries,7))[-1] 

也看到

Using python, how to read a file starting at the seventh line ?