所以我的路径:
/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"])