Ответ 1
Ваш shlex.split()
уничтожает ваш путь из-за удаления \characters. Пусть проверьте:
import shlex
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"
print shlex.split(command)
['C:progra~2itmsiTMSTransporter', '-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']
Как вы можете видеть, путь к исполняемому файлу неверен (C:progra~2itmsiTMSTransporter
), поэтому Popen его не может найти.
Измените разделитель путей на /
, который безопасен как в среде Linux/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"
print shlex.split(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']
Popen()
будет корректно обрабатывать этот путь.