特殊字符 $ 未从命令行 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 读取的主要内容,如果未能解决你的问题,请参考以下文章

Shell命令行中特殊字符与其转义详解(去除特殊含义)

如何在python中读取带有特殊字符的文本文件

shell特殊符号 命令

Python:当文件在列标题中有特殊字符时,使用 Pandas 读取 Excel 文件

正则与python的re模块

如何在dos中输入特殊字符