【已解决】windows下ConfigParser,怎么读取\r\n等特殊字符?
本帖最后由 tntsjc 于 2014-06-25 14:19 编辑新手学习python时遇到一个问题,在配置文件中写了一些http网络数据包内容,但是抓包时看到的内容是普通tcp报文,把\r\n当成普通字符了,不知道有什么办法能正确获取到\r\n等特殊字符。
\r\n等转义字符,只有编译器在编译时自动处理才会变成真正的含义。
自动从配置文件读取字符串,只要自己替换了,比如
config = config_str.replace("\\r\\n", "\r\n")
回复 2# linustd
多谢多谢!我也想到这个办法了。但是有个新问题,如果是\x12\x34这样的字符怎么办呢?试着用相同的方法来替换,将\\x替换成\x时,python报错ValueError: invalid \x escape 转义字符是语言自己定义的特性,这个应该网上找找,说不定有现成的方法可以完成。 回复 4# linustd
谢谢!实验了一下,如果是用\x12来替换\\x12不会报错,查了下\x后面好像必须跟16进制数。不知道这个怎么搞了……在找找看。 没有找到好的办法…… 不老实google就说没找到?我看你是用baidu的吧,
看看哥搜索的结果:
Hello
World!
In : s.encode('string_escape')
Out: 'Hello\\nWorld!'
In : Out.decode('string_escape')
Out: 'Hello\nWorld!'
Not *quite* what you asked for, but it ought to be close enough. 回复 7# linustd
真没用gg,也没用bd,用的so,呵呵,感谢啊!不过我找到一个笨办法,用binascii的unhexlify来直接转成16进制。 tntsjc 发表于 2014-06-25 10:14 static/image/common/back.gif
回复 7# linustd
切,有最标准的不用,非用歪门邪道的。 回复 9# linustd
还要多学习学习。{:3_190:}
页:
[1]