python - 为什么有时在 PowerShell(以及命令提示符)中使用单引号将命令括起来时不起作用?
问题描述
在Python 文档中它说:
启动解释器的第二种方法是
python -c *command* [arg] ...
,它执行命令中的语句,类似于 shell 的-c
选项。由于 Python 语句通常包含空格或其他 shell 特有的字符,因此通常建议使用单引号将整个命令引用。
所以为了测试这个特性,我在 PowerShell 中尝试了这个:
> py -c 'print("Hello, World!")'
它显示了这个错误:
File "<string>", line 1
print(Hello, World!)
但是,当我使用双引号时,它工作得很好:
> py -c "print('Hello, World!')"
似乎它只发生在字符串上。对于数字,它工作正常。我认为这里的问题与使用引号有关。为什么会这样?
解决方案
我的猜测是(就像在 powershell 中一样)单引号不会被解释,而是字符串是字符串。这意味着 python 将第一个测试py -c 'print("Hello, World!")'
视为所有字符串,但py -c
需要一个命令。而使用双引号,pythonprint()
在字符串中查找函数(在您的 test 中)并执行它们。
我没有在网上找到这方面的证据,但我们在 powershell 中有相同的博客文章描述
推荐阅读
- selenium-webdriver - 不使用选择类我想确保“sam”选项在下拉列表中不可用
- laravel - 运行 NPM 安装失败
- git - 如何使用 git svn 从本地共享存储库克隆
- javascript - 如何使用 chai 在量角器中断言 sendkeys?
- css - 漏洞,寻找创建的包,npm warn notsup
- html - 可点击的链接不在其位置
- mongodb - 在 Concierge 订阅中出现 Python 错误连接到 Azure Cosmos DB 的 API for MongoDB
- html - 开放天气地图 API
- python - 在箱形图中绘制数据框的值
- javascript - 如何在组件中使用 Gatsby 模板?