subprocess.Popen
не хочет командной строки оболочки Он хочет массив аргументов exec:
Popen(["lpr", "-o", "page-ranges=1-2"])
Итак, мой путь:
/Users/work/Desktop/My Folder/My File.txt
Моя папка и мой файл имеют пробелы. Конечно, в терминале, когда вы вкладываете для автозаполнения, это будет делать /Users/work/Desktop/My\ Folder/My\ File.txt
.
Моя проблема, когда я использую этот путь в Python как таковой:
from subprocess import Popen def print_rc(file): with open(file, 'r') as infile: p = Popen(["lpr -o page-ranges=1-2"], stdin=infile) output = p.communicate()[0]
Я получаю ошибку, эту no such file or directory
ошибку. Когда я это делаю os.path.exists('/Users/work/Desktop/My Folder/My File.txt')
, получается так True
. Поэтому я думаю, что проблема связана с пробелами.
Что мне нужно сделать, чтобы преобразовать строку Python в нечто, что может понять bash?
subprocess.Popen
не хочет командной строки оболочки Он хочет массив аргументов exec:
Popen(["lpr", "-o", "page-ranges=1-2"])