我运行的代码在OSX中运行良好,但在Windows上会导致错误:
command = "C:\\progra~2\\itms\\iTMSTransporter -m verify -f /Volumes/Stuff/Temp/TMP_S_0_V_TV2.itmsp -u username -p password -o /Volumes/Stuff/Temp/TMP_S_0_V_TV2.itmsp/LOGFILE.txt -s provider -v eXtreme"
self.process1 = Popen(shlex.split(command), shell=False, stdin=PIPE)
我在Windows上收到的错误是:
^{pr2}$为什么Windows会出错?在
由于删除了\个字符,
shlex.split()
会破坏路径。让我们检查一下:如您所见,可执行文件的路径不正确(
C:progra~2itmsiTMSTransporter
),所以Popen找不到它。在将路径分隔符更改为
^{pr2}$/
,这在两种Linux/Windows环境中都是安全的:Popen()
将正确处理此路径。在相关问题 更多 >
编程相关推荐