→ ya790206:1. readline 的資料是字串,而非整數。你在IDLE下的 1 是 03/30 20:29
→ ya790206:數字 1。 第二個問題,d 只有一個元素而已。所以沒有d[3] 03/30 20:30
所以前輩的意思是
我的D是append一個整數a這一個字串?
我也有試過直接用
int(a)
可是出來的東西亂七八糟的 跟我原始的數字差很多(連+ -都變成一項)
請問大大 如果我這個讀取檔案問題 該怎麼解決為佳呢?
※ 編輯: MAGICXX 來自: 36.231.19.87 (03/30 20:33)
→ ya790206:把字串切成只含整數的字串list,再把list的字串轉整數 03/30 20:40
→ grtfor:python 內建的csv 來做處理 03/30 20:45
→ MAGICXX:因為我後面的資料不一定都是整數 會有一些小數點 03/30 20:45
→ MAGICXX:所以可以用float之類的嗎? 03/30 20:48
→ MAGICXX:感謝G大 我研究一夏~@@ 03/30 20:48
太感謝g前輩以及y前輩了!!
配合csv.reader以及int終於可以達到我想要的功效了~!!!
※ 編輯: MAGICXX 來自: 36.231.19.87 (03/30 21:30)
→ ya790206:有個小問題,你說你的資料有小數點,怎麼還用int? 03/30 21:34
import csv
f=open(r"c:\dd.csv","rb")
c=csv.reader(f,delimiter=',')
d=c.next()
a=int(d[3])
b=d[4:a+a+1]
print b
因為第四位一定是整數 所以我在切完之後 直接轉int給底下再切的時候吃
這樣子就可以達到 切那個數值 然後讀後面的數字下來
剛剛也有試過利用
>>> b[1]+b[2]
'0.11'
他是可以互相加起來的
所以符合我想要的東西這樣~@@
※ 編輯: MAGICXX 來自: 36.231.19.87 (03/30 21:45)
→ ya790206:我不知道你的data。你能跑就好 03/30 21:58
推 mars90226:我比較好奇你是csv檔,為什麼要用rb開? 03/30 23:33
→ MAGICXX:抱歉 我只有用過RB開檔案而已....囧 03/30 23:41
抱歉 又有點小問題了...
他迴圈跑到最後 會出現
Traceback (most recent call last):
File "C:\Users\ALPHA\Desktop\work\ww.py", line 7, in <module>
d=c.next()
StopIteration
請問這個有辦法讓它不要出現嗎?
不然程式不管怎麼跑都會出現.....
然後後面的處理就卡住了....
※ 編輯: MAGICXX 來自: 36.231.19.87 (03/31 13:06)
→ suhorng:就是已經跑到結尾的意思 你原本的迴圈可以用個 for 取代掉 03/31 13:30
→ suhorng:或是自己 try: except: 抓起來 03/31 13:30
我這邊已經是用FOR迴圈了
for i in c
這樣
※ 編輯: MAGICXX 來自: 36.231.19.87 (03/31 14:53)
→ suhorng:hmm, 若你已經 for i in c, 那為什麼還有 d=c.next()? 03/31 15:50
我有試過for i in d
不過他就會把那行裡面的東西從頭丟到底這樣
就是給他丟到D之後 我下面還會對他有動作~@@
※ 編輯: MAGICXX 來自: 36.231.19.87 (03/31 16:05)