2024-04-24 00:02:33 发布
网友
我想从命令行接收分隔符,如'\t'(tab), 并使用它来解析文本文件。在
如果我把
delimiter = sys.argv[1]
在代码中,并从命令行键入
分隔符是'\\t',也就是说,python会按原样保存输入字符串。在
'\\t'
我想把它转换成'\t',这样我就可以使用例如
'a\tb\tc'.split(delimiter)
得到['a','b','c']。在
['a','b','c']
我试图把'\'转换成'\',但失败了。在
是否有内置的python函数从命令行处理regex?在
在Python2中,可以使用str.decode('string_escape'):
str.decode('string_escape')
>>> '\\t'.decode('string_escape') '\t'
在Python3中,必须先将字符串编码为字节,然后使用unicode_escape:
unicode_escape
这两种解决方案都接受任何转义序列并将其正确解码,因此您甚至可以使用一些奇特的unicode代码:
>>> '\\t\\n\\u2665'.encode().decode('unicode_escape') '\t\n♥'
你要找的不是真正的regexp,而是转义序列。在
您可以使用eval,只要您完全了解可怕的安全后果,或者使用自己的基于字符串替换/regexp的转义序列unescaper。在
eval
(谁知道呢,也许arg = arg.replace("\\t", "\t")对你来说就足够了?)在
arg = arg.replace("\\t", "\t")
作为一种解决办法
$ python mycode.py `echo -ne '\t'`
to(ab)使用Unix echo命令为您执行取消跳过操作。在
在Python2中,可以使用
str.decode('string_escape')
:在Python3中,必须先将字符串编码为字节,然后使用
^{pr2}$unicode_escape
:这两种解决方案都接受任何转义序列并将其正确解码,因此您甚至可以使用一些奇特的unicode代码:
你要找的不是真正的regexp,而是转义序列。在
您可以使用
eval
,只要您完全了解可怕的安全后果,或者使用自己的基于字符串替换/regexp的转义序列unescaper。在(谁知道呢,也许
arg = arg.replace("\\t", "\t")
对你来说就足够了?)在作为一种解决办法
to(ab)使用Unix echo命令为您执行取消跳过操作。在
相关问题 更多 >
编程相关推荐