Форум сайта python.su
Здравствуйте! При передачи аргументов, содержащих пробелы, в os.popen, os.system возникает ошибка, кто-нибудь знает, как можно это обойти?
import os, sys
pypath = sys.executable # "E:\program files\python\python.exe"
cmdline = "E:\program files\echo.py"
os.system(pypath + ' ' + cmdline)
os.popen('%s %s' % (pypath, cmdline))
Отредактировано kancler (Фев. 1, 2021 16:27:02)
Офлайн
Используй subprocess.
Офлайн
kanclerэкранируйте слеши
Шаманил с кавычками в разных местах - все равно не получается.
\\
Отредактировано xam1816 (Фев. 1, 2021 17:31:10)
Офлайн
Rodegastsubrocess, к сожалению, блокирует вызывающую программу
Используй subprocess.
Офлайн
xam1816это тоже не помогает
Офлайн
kanclerу меня работает,
это тоже не помогает
os.system(pypath + ' ' + cmdline)
echo.py
Отредактировано xam1816 (Фев. 1, 2021 19:36:22)
Офлайн
kanclerКонечно знаем. На первой же лекции студентам говорю - не умеете пользоваться командной строкой - не дейлайте в windows пути с пробелом. Не делайте пути содержащие не ascii символы. Да и в любой ОС это ни к чему.
кто-нибудь знает, как можно это обойти?
kanclerЧто вы имеете ввиду?
subrocess, к сожалению, блокирует вызывающую программу
Отредактировано doza_and (Фев. 1, 2021 19:41:26)
Офлайн
xam1816Работает, если не больше одного из путей оказывается с пробелами. Спасибо!
Отредактировано kancler (Фев. 1, 2021 21:56:04)
Офлайн
doza_andсценарий создает всплывающие и при вызове родительские блокируется при использовании subprocess и system
Офлайн