[問題] subprocess popen

作者: tsaiminghan (tsaiminghan)   2020-04-12 18:55:22
最近碰到兩個popen執行問題,請問版上是否有
人知道問題在哪
1.popen命令執行完後,會卡住,要按一下enter整個執行才會結束
# 命令太長,在bbs上先分成兩行
cmd ='cmd /c java -Dfile.encoding=UTF-8 -cp AozoraEpub3.jar
AozoraEpub3 -enc UTF-8 -device kindle -hor "D:\web\3.txt"'
subprocess.Popen(cmd)
這個改成下面就不會卡住了, 不過原因還在查。
subprocess.Popen(cmd, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
2. 如果路徑名稱是簡體,日文,總之是目前cmd無法正確顯示的路徑
比如上面的
D:\web\3.txt改成
[惰堕] 剑徒之路\[惰堕] 剑徒之路.txt
不知道是不是因為cmd下上面的剑字無法正常顯示,所以會找不到檔案
下面是錯誤訊息
[ERROR] file not exist. D:\web\data\www.b5200.net\[惰堕] ?徒之路\[惰堕] ?徒之路-
aozora.txt
目前只想到先改名稱,跑完程式後,再改回來,不過不知道有沒有比較
好的方法。
作者: LiloHuang (十年一刻)   2020-04-12 20:35:00
應該是Python2既有的bug,可以換Python3跑跑看非得使用 Python2,可看看這篇 https://bit.ly/2VnG1y4抱歉沒有環境測試,話說把 java 叫起來應該不用 cmd /c搞不好是 cmd /c 導致的
作者: TakiDog (多奇狗)   2020-04-13 01:40:00
WSL開發吧
作者: s860134 (s860134)   2020-04-15 22:44:00
你把 python 的程式碼傳上來吧"[惰?] ?徒之路\[惰?] ?徒之路" 應該是你讀到 python 時就已經把字串讀成 "?" 單純用 os.listdir 不會有這問題猜你是想把內聞做繁簡轉換吧.
作者: TuCH (謬客)   2020-04-16 08:07:00
看起來應該是編碼出問題 環境太髒了
作者: zerof (貓橘毛發呆雕像)   2020-04-16 13:36:00
2沒意外的話是 windows cmd 的問題,default encoding 是 cp950, 可以轉 65001 應該就會正常(chcp 65001)1 的話可以試試把前面的 cmd /c 拿掉應該就可以了

Links booklink

Contact Us: admin [ a t ] ucptt.com