[问题] 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