从文件中分割行会添加\ t而不是空格

时间:2018-11-02 13:20:34

标签: python python-3.x

我有一个txt文件,其中包含Cookie,我需要分割每行。问题是我一直在逃脱制表符而不是空格。

这是文本文件:

.xxxxxx.com TRUE    /   FALSE   1564915174  did Vd08VIDr01SphvJn
.xxxxxx.com TRUE    /   FALSE   1564915174  didts   1533379178

这是我的代码:

list = open('GoogleChrome_Default.txt','r').read().split('\n')
print(list)

这是输出:

['.xxxxxx.com\tTRUE\t/\tFALSE\t1564915174\tdid\tVd08VIDr01SphvJn', '.xxxxxx.com\tTRUE\t/\tFALSE\t1564915174\tdidts\t1533379178']

我还尝试使用.readlines()并遍历文件,同时将每行追加到列表中,但是得到的结果相同。

如果我在这个也包含标签的txt文件中尝试相同的代码:

Hello    World
Foo    Bar

我得到了我想要的输出,没有任何转义字符:

['Hello    World', 'Foo    Bar']

那么,如何防止拆分文本文件时出现那些转义的字符?以及为什么这些字符全部出现? 谢谢!

2 个答案:

答案 0 :(得分:0)

您可以在阅读列表后进行

list = [item.replace('\t','   ') for item in list]

复制其他输出

第二个文件的行为不同是因为某些文本编辑器在您按下Tab键时会输入四个空格(4*' '),而不是'\t'

答案 1 :(得分:0)

对于第二个示例,文本编辑器已经将\t制表符转换为空格。

在用于保存的文本编辑器中打开文本文件。在假定的“ tab”字符之间移动时,您会注意到光标实际上正在4个单独的空格中移动,而不是一个制表符。

如果将以下内容写入文本文件:

with open('test.txt', 'w') as file:
    file.write('hello\tworld\n')
    file.write('foo\t\tbar')

您会发现打开文本编辑器时,它看上去是一样的,但是当您在\t中移动时,光标仅移动4个空格一次。现在,在带有标签的文本编辑器中写一行并保存。

当你读回它时:

with open('test.txt', 'r') as file:
    data = file.read()
    data.split('\n')

您会看到前两行的结果完全相同,但最后一行却不同:

# ['hello\tworld', 'foo\t\tbar', 'test    hello']