4

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

事情来了……我的代码如下所示:

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

并且由于我使用了 os.system,它显然只会将 C:/t est/hello 发送到 CMD ..

现在我需要用引号将“C:/t est/hello”发送到cmd,但我需要python来理解我也需要2个引号。有人可以帮帮我吗?

4

1 回答 1

18

如果要在命令中添加引号,只需这样做。可能最简单的方法是对字符串使用单引号:

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

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

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

但是,它更容易使用subprocess,并让它为您处理报价。例如:

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

甚至推荐使用的文档os.system()subprocess

subprocess 模块提供了更强大的工具来生成新进程并检索它们的结果;使用该模块优于使用此功能。请参阅子流程文档中的用子流程模块替换旧功能部分以获取一些有用的秘诀。

于 2013-04-23T18:59:24.730 回答