我注意到这段代码:
os.system("'{0}'".format(path))
并看到有人将其更改为:
os.system("\"{0}\"".format(path))
我想知道通过将它从单引号更改为双引号它给你带来了什么好处?
这是我从中提取的原始提交:https ://github.com/mattn/legit/commit/84bd1b1796b749a7fb40e0b734d2de29ddc9d3d9
我注意到这段代码:
os.system("'{0}'".format(path))
并看到有人将其更改为:
os.system("\"{0}\"".format(path))
我想知道通过将它从单引号更改为双引号它给你带来了什么好处?
这是我从中提取的原始提交:https ://github.com/mattn/legit/commit/84bd1b1796b749a7fb40e0b734d2de29ddc9d3d9
真的不多,但经验法则使用单引号进行文字赋值和打印。这样,您将避免打印一开始就不应该存在的东西。
单引号通常很有用,因为它们是文字,并且包含您键入的字符,例如'Hi there/'实际上会打印Hi there/
但是,如果您需要类似'Hi there /n' 之类的内容,如果将其放在单引号中,它会字面上为您提供'Hi there /n'而双引号将为您提供您需要的结果"Hi there" 然后换行.
在 Windows 上,命令行参数由程序本身解析,而不是 shell 或 cmd.exe。并且大多数Windows程序通常用双引号解析带引号的字符串。python.exe
是一样的。在 unix 操作系统上,命令行参数由 shell 解析。大多数shell都解析单引号/双引号。当然,双引号扩展$
或外壳可以处理的东西。但是,路径不会包含$
.
此更改是可以在许多操作系统上合法工作的解决方法。