我有一个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']
那么,如何防止拆分文本文件时出现那些转义的字符?以及为什么这些字符全部出现? 谢谢!
答案 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']