7

可能重复:
将元字符作为命令行参数传递给 Python

我想将命令行中的参数传递给 python 脚本来指定我的输入文件的分隔符。(例如",""\t")。为了灵活起见,我想直接在命令行上指定它,而不是在脚本中将此参数的选项中的代码。

例如

pythonscript.py --in_delimiter "\t" --in_file input.txt

在 python 接收到反斜杠之前,我似乎遇到了解释反斜杠的问题。我试图通过添加额外的反斜杠来逃避这一点,但无法让它工作。

我的问题:是否可以从命令行传递类似“\t”的内容,或者我是否必须使用我在脚本中解释的代码(例如,c = ","t= "\t"等)。

谢谢你的帮助。

4

2 回答 2

9

你是在 Bash 中做的吗?如果是这样,请尝试:

pythonscript.py --in_delimiter $'\t' --in_file input.txt
于 2013-01-10T05:32:38.500 回答
2

在 unix/linux 上,传递制表符很容易。您需要引用它,因为它是空格

要键入文字选项卡,请使用ctrl-v tab

pythonscript.py --in_delimiter "   " --in_file input.txt
                                 ^
                                 | this is `ctrl-v` `tab`

或者,您可以针对特殊情况进行映射

pythonscript.py --in_delimiter TAB --in_file input.txt

你在这样的代码中处理

in_delimiter = {"TAB": "\t", "COMMA": ","}.get(in_delimiter, in_delimiter)
于 2013-01-10T05:32:49.750 回答