Итак, мой путь:

/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 ответ1

2

subprocess.Popen не хочет командной строки оболочки. Он хочет массив аргументов exec:

Popen(["lpr", "-o", "page-ranges=1-2"])

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .