Найти - Пользователи
Полная версия: маленький вопрос по os.system, os.popen ...
Начало » Python для новичков » маленький вопрос по os.system, os.popen ...
1
kancler
Здравствуйте! При передачи аргументов, содержащих пробелы, в 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))
Не работает ни первый, ни второй варианты. Шаманил с кавычками в разных местах - все равно не получается.

Ошибка: ‘E:\program’ is not recognized as an iternal command…

Спасибо за помощь!
Rodegast
Используй subprocess.
xam1816
kancler
Шаманил с кавычками в разных местах - все равно не получается.
экранируйте слеши
 \\
или r перед ссылкой
kancler
Rodegast
Используй subprocess.
subrocess, к сожалению, блокирует вызывающую программу
kancler
xam1816
это тоже не помогает
xam1816
kancler
это тоже не помогает
у меня работает,
 os.system(pypath + ' ' + cmdline)

попробуй просто название файла без пути
 echo.py
doza_and
kancler
кто-нибудь знает, как можно это обойти?
Конечно знаем. На первой же лекции студентам говорю - не умеете пользоваться командной строкой - не дейлайте в windows пути с пробелом. Не делайте пути содержащие не ascii символы. Да и в любой ОС это ни к чему.

Так что лучше снесите ваш питон, возьмите нормальный с сайта и поставьте его для всех пользователей. Получите стандартынй путь без пробелов C:\python39.

system по сути воспроизводит то что вы вводите в командной строке. Шаманьте в командной строке, потом, как заработает переносите в питон, не забывая экранировать слеши.

kancler
subrocess, к сожалению, блокирует вызывающую программу
Что вы имеете ввиду?
Я правда не думаю что subrocess хоть чтото даст отличное от system

kancler
xam1816
Работает, если не больше одного из путей оказывается с пробелами. Спасибо!
kancler
doza_and
сценарий создает всплывающие и при вызове родительские блокируется при использовании subprocess и system
Смог побороть только при использовании не больше одного пути с пробелами. Спасибо за помощь!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB