如何在Python中读取\t?

3

我有一个像这样的文本文件

i am a messi fan \t

我正在使用这段代码来读取数据。
 f = open(input_para['controle_file'], 'r')
        filedata = f.read().splitlines()

现在我的输出是:
i am a messi fan \\t

需要输出的结果是i am a messi fan \t

在Python中,如何从文本文件中获取这个精确数据?


2
我也是梅西的粉丝。 :) - Ashwini Chaudhary
2个回答

6

区别在于Python如何表示字符串。如果您使用print命令,您将会看到您想要的结果。

>>> r"foo\t"
'foo\\t'
>>> print r"foo\t"
foo\t

这归结为reprstr之间的区别...
>>> s = r"foo\t"
>>> print str(s)
foo\t
>>> print repr(s)
'foo\\t'

之所以这样做是因为如果可能的话,repr应该返回一个适合用于重新创建该对象的字符串。在您的情况下,如果repr没有添加额外的转义反斜杠,则字符串表示将看起来像其中有一个制表符。


我在字符串中没有做任何事情。如何将文件中的相同字符串获取到变量file_data中? - EbinPaulose
@SamueleMattiuzzo -- 我甚至没有故意这样做 :) - mgilson
@EbinPaulose:你已经有了那些数据(忽略换行符)。不同之处在于你如何显示它。 - jfs

1
你看到的是字符串的repr版本,当你使用str或打印该字符串时,你将不会得到任何'\\t'
>>> strs = "i am a messi fan \t"
>>> repr(strs)
"'i am a messi fan \\t'"

>>> str(strs)
'i am a messi fan \t'
>>> print strs
i am a messi fan    

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接