【发布时间】:2018-01-28 16:04:13
【问题描述】:
我有一个 4GB 的文本文件,我什至无法加载以查看它,所以我试图将它分开,但我需要一次处理一点数据。
问题是我得到了这些垃圾白色垂直矩形字符,我无法在搜索引擎中搜索它们是什么,因为它不会粘贴,我也无法摆脱它们。 它们看起来像这些方括号“[]”,但中间没有那么小的空间。 它们的 Unicode 值不同,所以我不能只选择一个值并摆脱它。 我想摆脱所有这些矩形。
还有两个问题。
1) 为什么这里(在下面的 img 中)有任何 Unicode 字符?我解码了它们。我错过了什么?注意:稍后我得到的字符串输出看起来像一个普通字符串,例如“code1234”等,但那里也有那些 Unicode 异常。
2) 你能明白为什么更大的end 值会得到这个异常list index out of range 吗?这只发生在range 的末尾并且它不是恒定的,即如果end 是 100,那么最后 5 个可能会抛出该异常,但如果 end 是 1000,那么只有最后一个假设 10 抛出该异常.
一些代码:
from itertools import islice
def read_from_file(file, start, end):
with open(file,'rb') as f:
for line in islice(f, start, end):
data.append(line.strip().decode("utf-8"))
for i in range(len(data)-1):
try:
if '@' in data[i]:
a = data.pop(i)
mail.append(a)
else:
print(data[i], data[i].encode())
except Exception as e:
print(str(e))
data = []
mail = []
read_from_file('breachcompilationuniq.txt', 0, 10)
一些输出: Image link here as it won't let me format after pasting.
There's also this stuff later on, I don't know what these are either.
【问题讨论】:
-
如果您将文件作为二进制文件打开,您将获得字节。如果是文本,您可能不应该以二进制形式打开。
-
我不知道文件的结构。如果我不以字节形式打开它,则会给出
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 2560: character maps to <undefined>@adr 的错误 -
矩形,您可以看到它是 ASCII 表中较低字节的占位符(代码从
00到1F的字节也称为不可打印字符,请参阅:upload.wikimedia.org/wikipedia/commons/thumb/1/1b/…)。此类符号在标准字体中没有正确的表示。
标签: python-3.x unicode