作者fordpines (阿福)
看板Python
標題[問題] Django 檔案寫入問題
時間Sat Nov 4 01:46:10 2017
最近在學django 順便把以前寫的小工具整合好弄成弄成網頁版
現在卡在:讀完上傳好的檔案以後再做一些處理 把處理好的結果存成另外一個檔案後
會變成這樣
https://imgur.com/ORtLlfH
查了一下stack overflow 有發現類似的問題(
http://bit.ly/2hBHQEh)
但照著他的做法還是沒用
不太知道要怎麼表達問題 但麻煩鄉民了
順便問一下最近有沒有人用vmware灌ubuntu
有時候會突然像是按了ctrl沒放開一樣 會一直反白文字或是放大縮小
鼠標也離不開vmware的視窗
除非把他強制關閉不然解決不了問題
我記得8月還沒這個問題的啊...
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.225.56.33
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1509731173.A.481.html
1F:→ kenduest: 錯誤訊息有說你是寫檔案到系統的 /media/ 目錄內了 11/04 02:00
2F:→ kenduest: 你確定你程式真的是要寫入檔案放在根目錄內的 /media ? 11/04 02:00
3F:→ kenduest: 另外你用 os.path.dirname(__file__) 這語法頗怪異 11/04 02:01
4F:→ kenduest: 很明顯你程式碼內這結果傳回空字串,所以 join 路徑 11/04 02:03
5F:→ kenduest: 是一個 "" + /media/....." 組合結果,所以就是 /media/ 11/04 02:04
6F:→ kenduest: __file__ 這種取法是不能夠正確取得自己本身完整路徑 11/04 02:06
我剛剛把route裡面的/media/刪掉就可以存了 可是我的確是要存到根目錄的media目錄裡面
※ 編輯: fordpines (36.225.56.33), 11/04/2017 02:12:20
7F:→ kenduest: 單一 script 手動執行方式不同會有不同結果 11/04 02:08
8F:→ kenduest: python xxx.py 時候 __file__ 是得到 1.py 11/04 02:08
9F:→ kenduest: 修正: python xxx.py 時候 __file__ 是得到 xxx.py 11/04 02:09
10F:推 Sunal: os.path.dirname(os.path.abspath(__file__)) 11/04 02:09
11F:→ kenduest: python /path/xxx.py 的話 __file__ 是 /path/xxx.py 11/04 02:10
12F:→ Sunal: 取當下script所在folder絕對路徑是這樣取 11/04 02:10
13F:→ kenduest: 若你程式堅持要依據 py 檔案自己本身所在目錄的話 11/04 02:10
14F:→ kenduest: 至少考慮一下取得真實的絕對路徑位置 11/04 02:10
15F:→ kenduest: os.path.dirname(os.path.realpath(__file__)) 11/04 02:11
16F:→ kenduest: 這種才比較對,才不會出包 11/04 02:11
17F:→ kenduest: 另外你寫 django 一般檔案寫入應該主要是要寫入到 11/04 02:11
18F:→ kenduest: 系統規定的 MEDIA_ROOT 變數內相關的路徑位置比較對啊 11/04 02:12
19F:推 Sunal: 要用abspath 跟realpath也是看情況吧 11/04 02:14
20F:→ kenduest: 對,我意思是取絕對路徑,用 abspath 比較正確,感謝 11/04 02:16
21F:推 Sunal: 自己開一個folder 權限跟擁有者設定好 通常不會直接存到 11/04 02:25
22F:→ Sunal: /media底下 11/04 02:25