Python中带有制表符和整数的字符串在打印外是不同的



我正在合并一些制表符分隔的文件,打印的输出不正确,但如果我访问REPL中的字符串,它看起来很好。它看起来是这样的:

fh=open('out.vcf')
for line in fh:
i+=1
if i == 29401:
print(line)

AAEX03025909.1  1068    .   T   C                       0   42  5

然后看它没有打印:

line
'AAEX03025909.1t1405t.tCtTtttttt0t0t0t0t0t0t0t0t10t9n'

当我在less中查看out.vcf时,它看起来像是打印的输出。为什么我得到不同的输出?我想要一个不需要打印的字符串。使用逗号而不是制表符可以解决问题,但我希望将其保留为制表符分隔的

数据的表示方式和存储方式之间总是会有一些差异;实际上,这些值存储为二进制,但表示方式取决于编码。。在这种情况下,您看到t(ASCII字符9(以两种方式表示

print()将显示文件及其编码(您可以更改(,而简单地回显文件将显示Pythonrepr()解释

>>> "t"
't'
>>> ord("t")
9
>>> print("t")
>>> repr("t")
"'\t'"
>>> print(repr("t"))
't'

最新更新