以人类可读的方式编写嵌入式分号ASCII

时间:2019-05-08 02:43:05

标签: python python-2.7 character-encoding ascii

我有一个制表符分隔的文本文件,其中包含我要解析的某些字段中的分号和等号的ascii符号;即\ x3b和\ x3d。我无法弄清楚如何将其转换回我的代码中,尽管在命令行中它是自动完成的。

我尝试使用编解码器和编码进行读写,以及string.replace

temp[8].replace("\x3b",";")
file=codecs.open(filename, 'r', encoding='ascii') # or utf-8

我希望看到: dist = 7117; dist = 1508

但是我只是得到输入字符串: dist \ x3d7117 \ x3bdist \ x3d1508

当我在python命令行中键入此命令时:

  

unicode(“ dist \ x3d7117 \ x3bdist \ x3d1508”)

输出为:

  

dist = 7117; dist = 1508

当我将其放入代码中时:

print unicode(dist\x3d7117\x3bdist\x3d1508)

我明白了 dist = 7117; dist = 1508

但是当我放入包含此字符串的变量

print unicode(temp[7])

我得到: dist \ x3d7117 \ x3bdist \ x3d1508

谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

很难看到repr的数据,但这应该行得通。

>>> s = 'dist\\x3d7117\\x3bdist\\x3d1508'
>>> fixed = s.decode('string-escape')
>>> print fixed
dist=7117;dist=1508