→ kenduest: 錯誤訊息有說你是寫檔案到系統的 /media/ 目錄內了 11/04 02:00
→ kenduest: 你確定你程式真的是要寫入檔案放在根目錄內的 /media ? 11/04 02:00
→ kenduest: 另外你用 os.path.dirname(__file__) 這語法頗怪異 11/04 02:01
→ kenduest: 很明顯你程式碼內這結果傳回空字串,所以 join 路徑 11/04 02:03
→ kenduest: 是一個 "" + /media/....." 組合結果,所以就是 /media/ 11/04 02:04
→ kenduest: __file__ 這種取法是不能夠正確取得自己本身完整路徑 11/04 02:06
我剛剛把route裡面的/media/刪掉就可以存了 可是我的確是要存到根目錄的media目錄裡面
※ 編輯: fordpines (36.225.56.33), 11/04/2017 02:12:20
→ kenduest: 單一 script 手動執行方式不同會有不同結果 11/04 02:08
→ kenduest: python xxx.py 時候 __file__ 是得到 1.py 11/04 02:08
→ kenduest: 修正: python xxx.py 時候 __file__ 是得到 xxx.py 11/04 02:09
推 Sunal: os.path.dirname(os.path.abspath(__file__)) 11/04 02:09
→ kenduest: python /path/xxx.py 的話 __file__ 是 /path/xxx.py 11/04 02:10
→ Sunal: 取當下script所在folder絕對路徑是這樣取 11/04 02:10
→ kenduest: 若你程式堅持要依據 py 檔案自己本身所在目錄的話 11/04 02:10
→ kenduest: 至少考慮一下取得真實的絕對路徑位置 11/04 02:10
→ kenduest: os.path.dirname(os.path.realpath(__file__)) 11/04 02:11
→ kenduest: 這種才比較對,才不會出包 11/04 02:11
→ kenduest: 另外你寫 django 一般檔案寫入應該主要是要寫入到 11/04 02:11
→ kenduest: 系統規定的 MEDIA_ROOT 變數內相關的路徑位置比較對啊 11/04 02:12
推 Sunal: 要用abspath 跟realpath也是看情況吧 11/04 02:14
→ kenduest: 對,我意思是取絕對路徑,用 abspath 比較正確,感謝 11/04 02:16
推 Sunal: 自己開一個folder 權限跟擁有者設定好 通常不會直接存到 11/04 02:25
→ Sunal: /media底下 11/04 02:25