看板 Python 關於我們 聯絡資訊
抱歉真的是新手 最近在寫程式 需要用python讀mat檔 因為檔案很多 所以我用的方法是讀一整個資料夾的檔案 但是不知道為什麼只能讀到最後一個檔案的內容 附上我的code import os import scipy.io as sio mat_contents = os.listdir("C:\\python\\MAT_Track\\MAT_track\\") for i in range (1,2136,1): matfn = "C:\\python\\MAT_Track\\MAT_Track\\"+mat_contents[i] data={} data[i]=sio.loadmat(matfn) 我查了好久也翻書了 真的不知道該怎麼改 拜託各位了 非常感謝!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.231.35.142 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1526141704.A.0F5.html
justoncetime: 首先把結果和錯誤訊息附上 05/13 00:49
justoncetime: 除了source,還該有結果和錯誤訊息(如果有) 05/13 00:51
justoncetime: 會來寫Python, 應該知道for效力範圍跟縮排有關吧 05/13 00:52
justoncetime: 然後data總不能每次都變空,位置... 05/13 00:55
附上了~http://imgur.com/a/vj2PSQN 我是寫到一半卡住的所以沒有錯誤XD
fischcheng: data={}在 for之前,然後data[i]在for裡面縮排試試 05/13 01:50
謝謝!我再試試
handsomeLin: 你的for迴圈結束之後 i是可用的變數 然後你命了一個 05/13 04:02
handsomeLin: 空dict 把key=i value是最後一個檔, 理所當然只有一 05/13 04:02
handsomeLin: 個資料啦 05/13 04:02
handsomeLin: 你mat_contents跟mat.contents是打錯嗎?btw 你可以 05/13 04:05
handsomeLin: 用enumerate同時得到i跟檔名 05/13 04:05
對喔!是我打錯 已修正 我成功了!!! 真的很謝謝各位! ※ 編輯: seo074482 (61.231.35.142), 05/13/2018 09:26:44
coeric: range (1,2136,1) 後面那個1其實可以省略掉沒關係 05/13 09:45
subi: 其實你也可以考慮這樣子做, 先 import pathlib 05/13 16:26
subi: list(pathlib.Path.cwd().rglob('*.mat')) 05/13 16:27