在python中使用subprocess时如何处理文件名中的空格

时间:2014-11-15 07:17:41

标签: python subprocess

我正在使用子进程删除python中的文件,其中一些文件名中有空格。我怎么能处理这个? 例如,我有一个名为'040513 data.txt'的文件

subprocess.call(['rm', '040513 data.txt'], shell=True)

但是我得到了像IOError这样的错误:[Errno 2]没有这样的文件或目录 我怎么能解决这个问题?

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)