2013-12-20 25 views
-1

我正在做一個關於自動駕駛車輛的項目,該項目會前往建議的GPS座標。我應該如何創建一個新列表並將程序的輸出值輸入到該列表中?我的程序如下所示,我得到了字符串$ GPRMC的行號。我想將行號存儲到列表中並進一步操作這些行。
將輸出值發送到Python中的新列表

f=open('c:\Users\RuthvikWalia\Desktop\gpsdata.txt ','r') 
req_lines=0 
for line in f: 
    if(line.find('$GPRMC') >=0): 
    print 'its here', req_lines 
req_lines += 1 
p=[] 
p= p.append(req_lines) 
print p 

我只得到線的數量具有$ GPRMC而不是那些行數的列表的輸出。

+0

鑑於代碼發佈後,您應該以'p = [1]'結束。我懷疑你的一些縮進已經搞亂了。在這兩種情況下,你永遠不會在任何地方添加'線'到匹配的列表,所以你不應該期望結束與匹配線的列表... – twalberg

回答

2

@Claudiu答案是正確的,只是爲了給什麼Python的真正喜歡的小情趣,做到:

[(idx,line) for idx,line in enumerate(open('gpsdata.txt')) if '$GPRMC' in line] 
+0

哦,是的,不能相信我錯過了一。如果你使用枚舉,當然可以給出和我一樣的輸出。 – Claudiu

+0

@Claudiu加了枚舉,只爲你:) –

3

這將使的(line_number, line_string)元組到列表req_lines

f = open('c:\Users\RuthvikWalia\Desktop\gpsdata.txt ','r') 
req_lines = [] 
for i, line in enumerate(f): 
    if "$GPRMC" in line: 
     req_lines.append((i, line)) 
print req_lines