2014-10-30 41 views
-2

我有一個文本文件(coordinates.txt):閱讀從文本文件座標蟒蛇

30.154852145,-85.264584254 
15.2685169645,58.59854265854 
... 

我有一個Python腳本,裏面有它while循環:

每次運行上面的循環中,我需要讀取每行(count)並將c1,c2設置爲每行的數字(用逗號分隔)。有人能告訴我最簡單的方法嗎?

============================

import csv 

count = 0 

while True: 
     count += 1 
     print 'val:',count 
     for line in open('coords.txt'): 
       c1, c2 = map(float, line.split(',')) 
       break 
     print 'c1:',c1 
     if count == 2: break 
+2

這是_cactly_'csv'模塊的用途。 – 2014-10-30 21:33:39

+0

我真的是新來的這..任何幫助將不勝感激 – user2457324 2014-10-30 21:37:20

回答

0
f=open('coordinates.txt','r') 
count =0 
for x in f: 
    x=x.strip() 
    c1,c2 = x.split(',') 
    count +=1 
+0

這留在新行,OP不會想要的。此外,它基本上只是重新創建'csv'。 – 2014-10-30 21:43:38

+0

'x = x.strip()'解決了這個問題。感謝您指出 – Hackaholic 2014-10-30 21:48:04

3

這樣做,這將是最好的方法正如我上面評論:

import csv 

with open('coordinates.txt') as f: 
    reader = csv.reader(f) 
    for count, (c1, c2) in enumerate(reader): 
     # Do what you want with the variables. 
     # You'll probably want to cast them to floats. 

我也包括一種更好的方式使用利用enumeratecount變量,如通過@abarnert指出。

+1

+1。如果你需要'count',你可以使用'enumerate(reader)',而不是手動維護它。 – abarnert 2014-10-30 21:49:20

+0

@abarnert感謝提醒我,我不認爲包括這一點。更新。 – 2014-10-30 21:55:19