Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从文件中拆分行会添加\t而不是空白_Python_Python 3.x - Fatal编程技术网

Python 从文件中拆分行会添加\t而不是空白

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

我有一个txt文件,其中包含我需要拆分每一行的cookies。问题是我总是得到转义的制表符而不是空格

这是文本文件:

.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()
,我误解了,修正了我的回答