-3

我注意到这段代码:

os.system("'{0}'".format(path))

并看到有人将其更改为:

os.system("\"{0}\"".format(path))

我想知道通过将它从单引号更改为双引号它给你带来了什么好处?

这是我从中提取的原始提交:https ://github.com/mattn/legit/commit/84bd1b1796b749a7fb40e0b734d2de29ddc9d3d9

4

2 回答 2

1

真的不多,但经验法则使用单引号进行文字赋值和打印。这样,您将避免打印一开始就不应该存在的东西。

单引号通常很有用,因为它们是文字,并且包含您键入的字符,例如'Hi there/'实际上会打印Hi there/

但是,如果您需要类似'Hi there /n' 之类的内容,如果将其放在单引号中,它会字面上为您提供'Hi there /n'而双引号将为您提供您需要的结果"Hi there" 然后换行.

于 2013-01-22T16:06:57.350 回答
1

在 Windows 上,命令行参数由程序本身解析,而不是 shell 或 cmd.exe。并且大多数Windows程序通常用双引号解析带引号的字符串。python.exe是一样的。在 unix 操作系统上,命令行参数由 shell 解析。大多数shell都解析单引号/双引号。当然,双引号扩展$或外壳可以处理的东西。但是,路径不会包含$.

此更改是可以在许多操作系统上合法工作的解决方法。

在此处输入图像描述 在此处输入图像描述

于 2013-01-31T01:23:21.503 回答