#python #eof #wikipedia #dump #bz2
#python #eof #википедия #дамп #bz2
Вопрос:
В настоящее время я работаю над проектом, который включает получение заголовков статей из дампа Википедии. Загружаемый файл имеет формат .bz2 и содержит XML-файл размером около 80 ГБ, если бы я его распаковал.
Я могу открыть и прочитать первые несколько строк с помощью Python, но мой скрипт перестает читать после 43 строк. После этого запускается первая страница статьи. Я предполагаю, что между страницами есть EOF.
Есть ли какой-нибудь способ проигнорировать это и продолжить чтение? Я действительно не хочу ни сжимать его, ни изменять файл извне.
Мой код выглядит похожим на это:
import bz2
dump = bz2.BZ2File(path, "r")
i = 0
for line in dump:
print(type(line))
print(line)
if i <= 1000:
i =1
else:
break
dump.close()
Комментарии:
1. Помогает ли установка режима чтения в двоичный файл? Довольно странно находить явный символ EOF внутри (предположительно) допустимого XML-файла …
2. Не помогло. Я также попытался указать кодировку. Это привело к ошибке сегментации.
3. Я не могу себе этого представить, поскольку: EOF не является символом. ruslanspivak.com/eofnotchar