Usando lpr para imprimir um arquivo cujo caminho tenha espaços

0

Então, meu caminho:

/Users/work/Desktop/My Folder/My File.txt

Minha pasta e meu arquivo têm espaços. É claro que, no Terminal, quando você seleciona o preenchimento automático, ele faz /Users/work/Desktop/My\ Folder/My\ File.txt .

Meu problema é quando eu uso esse caminho em 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]

Eu recebo um erro que no such file or directory error. Quando eu faço os.path.exists('/Users/work/Desktop/My Folder/My File.txt') , isso resulta em True . Então eu acho que o problema tem a ver com os espaços.

O que eu preciso fazer para converter a string python em algo que o bash possa entender então?

    
por dearprudence 04.05.2018 / 08:38

1 resposta

2

subprocess.Popen não quer uma linha de comando do shell. Quer uma matriz de argumentos do exec:

Popen(["lpr", "-o", "page-ranges=1-2"])
    
por 04.05.2018 / 09:29

Tags