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

2024-10-04 05:25:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个txt文件,其中包含的饼干,我需要分裂每一个新行。问题是我总是得到转义的制表符而不是空格。你知道吗

这是文本文件:

.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']

那么,如何防止在拆分文本文件时出现转义字符呢?为什么会出现这些角色? 谢谢!你知道吗


Tags: 文件txtcomfalsetruehelloworldfoo
2条回答

你可以在阅读完你的清单后再做这个

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

复制其他输出

第二个文件的行为方式不同的原因是,当您按tab键时,某些文本编辑器将输入四个空格(4*' '),而不是实际的tab字符'\t'

在第二个示例中,文本编辑器已经将\t制表符转换为空格。你知道吗

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

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

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']

相关问题 更多 >