可能重复:
Passing meta-characters to Python as arguments from command line
我想将一个参数从命令行传递给python脚本,以指定我的输入文件分隔的内容。 (例如","
或"\t"
)。出于灵活性的考虑,我想直接在命令行中指定它,而不是将此参数的选项中的代码添加到脚本中。
e.g。
pythonscript.py --in_delimiter "\t" --in_file input.txt
我似乎遇到了在python收到它之前解释反斜杠的问题。我试图通过添加额外的反斜杠来逃避这一点,但却无法使其发挥作用。
我的问题:是否可以从命令行传递类似“\ t”的内容,或者我是否必须使用我在脚本中解释的代码(例如c = ","
或{ {1}}等。)
感谢您的帮助。
答案 0 :(得分:6)
pythonscript.py --in_delimiter $'\t' --in_file input.txt
答案 1 :(得分: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)