我正在使用子进程删除python中的文件,其中一些文件名中有空格。我怎么能处理这个? 例如,我有一个名为'040513 data.txt'的文件
subprocess.call(['rm', '040513 data.txt'], shell=True)
但是我得到了像IOError这样的错误:[Errno 2]没有这样的文件或目录 我怎么能解决这个问题?
答案 0 :(得分:1)
你可以逃避空白,例如:
cmd = "rm 040513\ data.txt"
subprocess.call(cmd, shell=True)
答案 1 :(得分:0)
您还可以将参数列表传递给call
。这会处理参数,也可以避免shell=True
安全问题:
subprocess.call(['rm', '040513 data.txt'])
如果您出于任何原因想要使用shell=True
,那么您也可以像在shell中一样使用 escape 空白的引号:
subprocess.call('rm "040513 data.txt"', shell=True)