作者Yukirin (いい天気!)
看板Python
標題Re: [問題] readline()如何切?改用csv reader
時間Sun Mar 31 15:03:03 2013
※ 引述《MAGICXX (逢甲阿法)》之銘言:
readline()進來的資料格式應該是字串,
所以他應該是這個樣子:
"1,2,3,4,5,6,7,8,9\n"
要讀他的index的時候你讀到的也是字串,
所以你在IDLE裡可以做,是因為你在那邊輸入的時候並非字串。
假設資料格式是csv,純文字打開的話應該是:
1,2,3,4,5,6,7,8,9
1,2,3,3,5,6,7,8,9
1,2,3,2,5,6,7,8,9
1,2,3,4,5,6,7,8,9
1,2,3,1,5,6,7,8,9
data = open("F://Python/test.csv")
for each_line in data: ##一次讀進一行
temp = each_line.strip("\n").split(",") ##拿掉換行符 轉成list
show = temp[ 4: (4 + int(temp[3]) ) ] ##int把temp[3]轉成數值
print( show )
最後output的結果是:
['5', '6', '7', '8']
['5', '6', '7']
['5', '6']
['5', '6', '7', '8']
['5']
應該會是你想要的 ,要注意這邊list裡面的成分都還是字串。
剛學一個月,如果還有更快的解決法還請賜教。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.34.162.129
推 MAGICXX:感謝你!!!!!雖然 我直接用CSVReader 不過這個方法好像也可 03/31 18:16
→ MAGICXX:以的樣子~@@ 03/31 18:16
推 Yoxem:本來想到的反映是 regexp (re模組) 03/31 18:37
→ Yoxem: 應 03/31 20:29
→ uranusjr:切 CSV 用 re 有點殺雞焉用牛刀的感覺 04/02 16:37