【发布时间】:2013-01-10 13:39:29
【问题描述】:
可能重复:
Passing meta-characters to Python as arguments from command line
我想将一个参数从命令行传递给一个 python 脚本来指定我的输入文件是用什么分隔的。 (例如"," 或"\t")。为了灵活起见,我想直接在命令行中指定它,而不是在脚本中将此参数的选项中的代码。
例如
pythonscript.py --in_delimiter "\t" --in_file input.txt
我似乎遇到了在 python 接收到反斜杠之前解释它的问题。我试图通过添加额外的反斜杠来逃避这一点,但无法让它发挥作用。
我的问题: 是否可以从命令行传递类似 "\t" 的内容,或者我是否必须使用我在脚本中解释的代码(例如 c = "," 或 t= "\t"等)。
感谢您的帮助。
【问题讨论】:
-
虽然它不能回答更广泛的问题,但针对您的特定情况的一种选择是将制表符设为默认值,然后仅在不同时传递分隔符。
-
在 Python 收到反斜杠之前解释它有什么问题?那不是意味着程序接收到一个制表符吗?
-
谢谢 Amber,我目前已将逗号设置为默认值(在我的数据中更常见),但你说得对,它会解决我的问题...
-
您面临的具体问题是什么?
-
你是什么外壳?
python -c'import sys; print sys.argv' '\t'传递\t作为我的两个字符。你可以使用.encode("string-escape")/.decode("string-escape")来转换 Python 字节串文字形式。
标签: python command-line