[英]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
设置为True
或False
。 用/
, \\
等替换//
。问题似乎出在文件夹中的空格上(我无法更改文件夹名称)。
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.