使用 lpr 打印路径中有空格的文件

使用 lpr 打印路径中有空格的文件

所以我的路径:

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

我的文件夹和我的文件有空格。当然,在终端中,当你按 Tab 键进行自动完成时,它就会执行/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不需要 shell 命令行。它需要一个 exec 参数数组:

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

相关内容