だから私の道:
/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が理解できるものに変換するには、何をする必要がありますか?
いいえ、そういうわけではありません。
—
イグナシオバスケス-エイブラムス
Pythonからではなく、コマンドラインから直接同じファイルで 'lpr'を呼び出すのはなぜですか?プリンターはコマンドラインで印刷されます。
—
dearprudence
待つ!
—
慎重さ
shell=True
のコンストラクタに追加する必要がありますPopen
。笑
コマンドラインで正しくやっているからです。
—
イグナシオバスケス-エイブラムス