Python 从文件中拆分行会添加\t而不是空白
我有一个txt文件,其中包含我需要拆分每一行的cookies。问题是我总是得到转义的制表符而不是空格 这是文本文件:Python 从文件中拆分行会添加\t而不是空白,python,python-3.x,Python,Python 3.x,我有一个txt文件,其中包含我需要拆分每一行的cookies。问题是我总是得到转义的制表符而不是空格 这是文本文件: .xxxxxx.com TRUE / FALSE 1564915174 did Vd08VIDr01SphvJn .xxxxxx.com TRUE / FALSE 1564915174 didts 1533379178 这是我的代码: list = open('GoogleChrome_Default.txt','r').read().spl
.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']
那么,如何防止在拆分文本文件时出现转义字符呢?为什么会出现这些角色?
谢谢 您可以在阅读列表后执行此操作
list = [item.replace('\t',' ') for item in list]
复制另一个输出
第二个文件的操作方式不同的原因是,当您点击tab键时,某些文本编辑器将输入四个空格(
4*”
),而不是实际的制表符,即'\t'
。在第二个示例中,文本编辑器已将\t
制表符转换为空格
在用于保存的文本编辑器中打开文本文件。当您在假定的“制表符”字符中移动时,您会注意到光标实际上在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']
您的原始文件包含选项卡;打印字符串列表时,print将显示列表的字符串表示形式,因此“\t”为什么要这样做?如果您以字符串(而不是字符串列表)的形式编写输出,它将与您一样desire@Chris_Rands-愚蠢的我没有考虑它读取的标签与\n不一样。我有一个很大的Cookie文件,我想对其进行排序,但实际上将其作为字符串直接保存到该文件也可以!谢谢他们不想摆脱它们,他们想把标签看作空白,而不是标签的
repr()
,我误解了,修正了我的回答