当我尝试在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个引号。有人可以帮助我吗?
答案 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
:
子流程模块提供了更强大的工具来生成新流程并检索其结果;使用该模块比使用此功能更可取。有关一些有用的配方,请参阅子流程文档中的“使用子流程模块替换旧函数”部分。