Использование lpr для печати файла, путь к которому содержит пробелы
Итак, мой путь:
/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?
1 ответ
subprocess.Popen
не хочет командной строки оболочки Он хочет массив аргументов exec:
Popen(["lpr", "-o", "page-ranges=1-2"])