簡體   English   中英

帶有空間的路徑上的subprocess.call

[英]subprocess.call on path with space

包含文件的字符串在控制台中如下所示:

>>> target_file
'src//data//annual_filings//ABB Ltd//ABB_ar_2015.pdf'

我從對os.walk的調用中獲得了target_file 。目標是建立一個在subprocess.call運行的命令。

from subprocess import call

cmd_ = r'qpdf-7.0.0/bin/qpdf --password=%s --decrypt %s %s' %('', target_file, target_file)
call([cmd_])

我嘗試了其他變體,將shell設置為TrueFalse /\\等替換// 。問題似乎出在文件夾中的空格上(我無法更改文件夾名稱)。

python代碼需要在Windows上運行

您必須將cmd_定義為參數列表,而不是其中包含唯一字符串的列表,否則subprocess cmd_字符串解釋為命令(甚至不嘗試拆分args):

cmd_ = ['qpdf-7.0.0/bin/qpdf','--password=%s'%'','--decrypt',target_file, target_file]
call(cmd_)

並將報價留給subprocess

附帶說明,無需將斜杠加倍。 它有效,但這不是必需的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM