Dar*_*nia 9 python escaping backslash command-line-arguments
我正在制作一个Python程序,它将解析某些输入行中的字段.我想让用户从命令行输入字段分隔符作为选项.我正在使用optparse
这个.我遇到的问题就是输入类似于\t
字面意思的东西\t
,而不是在标签上,这就是我想要的.我很确定这是一个Python的东西而不是shell,因为我已经尝试了所有引号,反斜杠和t
我能想到的组合.
如果我optparse
能让这个论点成为明确的输入(是否存在这样的事情?)而不是raw_input
,我认为这样可行.但我不知道该怎么做.
我还尝试了各种替换和正则表达式技巧,将字符串从两个字符"\t"
转换为一个字符选项卡,但没有成功.
示例,其中input.txt
:
field 1[tab]field\t2
(注意:[tab]
是一个制表符,field\t2
是一个8个字符的字符串)
parseme.py:
#!/usr/bin/python
from optparse import OptionParser
parser = OptionParser()
parser.add_option("-d", "--delimiter", action="store", type="string",
dest="delimiter", default='\t')
parser.add_option("-f", dest="filename")
(options, args) = parser.parse_args()
Infile = open(options.filename, 'r')
Line = Infile.readline()
Fields = Line.split(options.delimiter)
print Fields[0]
print options.delimiter
Infile.close()
Run Code Online (Sandbox Code Playgroud)
这给了我:
$ parseme.py -f input.txt
field 1
[tab]
Run Code Online (Sandbox Code Playgroud)
嘿,很好,默认设置正常.(是的,我知道我可以做出默认设置并忘记它,但我想知道如何处理这类问题.)
$ parseme.py -f input.txt -d '\t'
field 1[tab]field
\t
Run Code Online (Sandbox Code Playgroud)
这不是我想要的.
归档时间: |
|
查看次数: |
3075 次 |
最近记录: |