特殊字符 $ 未从命令行 python 读取
Posted
技术标签:
【中文标题】特殊字符 $ 未从命令行 python 读取【英文标题】:Special character $ not read from command line python 【发布时间】:2017-08-27 10:21:36 【问题描述】:这是我的代码
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("echo")
args = parser.parse_args()
print args.echo
当我尝试从命令行使用$
传递文本时,它不会被采用。我试图通过在$
符号之前添加\
来转义特殊字符,但仍然没有运气。这就是我运行代码的方式
python test.py Sample$how
Sample
我在 Windows 上,我已经厌倦了使用 \
进行转义,但没有成功。
如何让我的代码采用$
符号?
【问题讨论】:
试试python test.py 'Sample$how'
。所以 $how 不会被视为变量。
感谢@vds,它解决了这个问题。
@vds 为什么单引号有效,而双引号无效?我曾试图避免后者的外壳扩展,但没有任何运气
【参考方案1】:
这些选项在 bash 中对我有用:
$ python test.py 'Sample$how'
Sample$how
$ python test.py Sample\$how
Sample$how
$ python test.py "Sample\$how"
Sample$how
【讨论】:
感谢您的回复,但我在 windows 上,我很累但没有工作【参考方案2】:扩展@vds 对该问题的评论:
我打赌你正在使用 Powershell(?)
在 Powershell 中,$how
将扩展为(可能不存在的)变量 how
的值:
https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.core/about/about_quoting_rules
Python(或任何其他可执行文件)甚至永远不会看到美元符号。
在变量周围添加单引号可以解决问题:
python test.py 'Sample$how'
【讨论】:
嘿@steinar,test.py 读取 'Sample$how' 包括单引号,所以我将不得不手动删除单引号。如何在不手动删除的情况下纠正此问题。以上是关于特殊字符 $ 未从命令行 python 读取的主要内容,如果未能解决你的问题,请参考以下文章