我如何在os.system中使用2引号?蟒蛇

时间:2013-04-23 18:56:03

标签: python

当我尝试在os.system中使用2个引号时,我遇到了一些问题。 我将用python启动一个程序,该目录有多个空格,并且要在CMD中启动具有多个空格的东西,你需要在它周围加上双引号。

这就是东西.. 我的代码看起来像这样:

import os
os.system("C:/t est/hello")

因为我使用了os.system,它显然只是将C:/ t \ test / hello发送给CMD ..

现在我需要的是将“C:/ t est / hello”发送到带引号的cmd,但我需要python才能理解我需要2个引号。有人可以帮助我吗?

1 个答案:

答案 0 :(得分:10)

如果要为命令添加引号,只需执行此操作即可。可能最简单的方法是为字符串使用单引号:

os.system('"C:/t est/hello"')

如果要在由双引号分隔的字符串中写入双引号,则需要对其进行转义。这将是这样做的:

os.system("\"C:/t est/hello\"")

但是,使用subprocess代替它并让它为您处理引用要容易得多。例如:

subprocess.check_call(['ls', 'some directory with spaces in'])

即使os.system()的{​​{3}}建议使用subprocess

  

子流程模块提供了更强大的工具来生成新流程并检索其结果;使用该模块比使用此功能更可取。有关一些有用的配方,请参阅子流程文档中的“使用子流程模块替换旧函数”部分。

相关问题