Python 板


LINE

前輩們好 我又來求救了 現在我想要讀一個CSV檔 然後在讀取他一行裡面的第四個值 然後利用這第四個值的大小(數字)去讀取後面的欄位 比如說 他第一行是這樣子 1,2,3,4,5,6,7,8,9 我想要讀到4 然後可以取出 5,6,7,8 這四個數字的值 我在IDLE底下有試過 >>> a=1,2,3,4,5,6,7,8,9 >>> b= a[4:a[3]+a[3]] >>> print b (5,6,7,8) 可是當我使用在readline()的時候 卻報錯了 >>> f=open(r"c:\dd.csv","rb") >>> a=f.readline() >>> b=a[3:a[3]+a[3]] Traceback (most recent call last): File "C:\Users\ALPHA\Desktop\work\ww.py", line 6, in <module> b=a[3:a[3]+a[3]] TypeError: slice indices must be integers or None or have an __index__ method 接著我又嘗試將他append到 另外一個 list底下 >>> d=[] >>> d.append(a) >>> d[3] Traceback (most recent call last): File "<pyshell#1>", line 1, in <module> d[3] IndexError: list index out of range 結果還是沒有辦法 想要請問一下前輩們 我有哪邊的想法出錯了嗎?? 關於一開始的問題 還有其他方法可解嗎? -- ◢███◣ 真是太令我興奮了,教授BOY~~ █████ █▉◥█◤ 覆蓋一張空白考卷在桌上 結束這學期 ██ ◤ \ ◤◤╲╰┤ ㊣ justlasai --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 36.231.19.87 ※ 編輯: MAGICXX 來自: 36.231.19.87 (03/30 20:05)
1F:→ ya790206:1. readline 的資料是字串,而非整數。你在IDLE下的 1 是 03/30 20:29
2F:→ ya790206:數字 1。 第二個問題,d 只有一個元素而已。所以沒有d[3] 03/30 20:30
所以前輩的意思是 我的D是append一個整數a這一個字串? 我也有試過直接用 int(a) 可是出來的東西亂七八糟的 跟我原始的數字差很多(連+ -都變成一項) 請問大大 如果我這個讀取檔案問題 該怎麼解決為佳呢? ※ 編輯: MAGICXX 來自: 36.231.19.87 (03/30 20:33)
3F:→ ya790206:把字串切成只含整數的字串list,再把list的字串轉整數 03/30 20:40
4F:推 grtfor:http://tinyurl.com/cjy9rm3 雖然跟問題無關,但你要不要用 03/30 20:44
5F:→ grtfor:python 內建的csv 來做處理 03/30 20:45
6F:→ MAGICXX:因為我後面的資料不一定都是整數 會有一些小數點 03/30 20:45
7F:→ MAGICXX:所以可以用float之類的嗎? 03/30 20:48
8F:→ MAGICXX:感謝G大 我研究一夏~@@ 03/30 20:48
太感謝g前輩以及y前輩了!! 配合csv.reader以及int終於可以達到我想要的功效了~!!! ※ 編輯: MAGICXX 來自: 36.231.19.87 (03/30 21:30)
9F:→ 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)
10F:→ ya790206:我不知道你的data。你能跑就好 03/30 21:58
11F:推 mars90226:我比較好奇你是csv檔,為什麼要用rb開? 03/30 23:33
12F:→ 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)
13F:→ suhorng:就是已經跑到結尾的意思 你原本的迴圈可以用個 for 取代掉 03/31 13:30
14F:→ suhorng:或是自己 try: except: 抓起來 03/31 13:30
我這邊已經是用FOR迴圈了 for i in c 這樣 ※ 編輯: MAGICXX 來自: 36.231.19.87 (03/31 14:53)
15F:→ 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)







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP