Перебор файлов .xz с помощью lzma всегда связывает заголовок tar с первой строкой - PullRequest
0 голосов
/ 04 мая 2020

При переборе файлов .xz с использованием приведенного ниже кода создается впечатление, что заголовок tar или что-то еще, что я не знаю, связано с первой строкой каждого файла в .xz.

Каждый .xz содержит несколько файлов .txt, которые я хочу получить свои данные. Вот небольшой образец данных: https://wetransfer.com/downloads/1264134927500b143acf3aa05d61517520200504170531/47edc4

import os, sys
import lzma

strPath = "./openwebtext"
fileList = os.listdir(strPath)
fileList = [os.path.join(strPath, item) for item in fileList]

for file in fileList:
    with lzma.open(file, "rt") as raw_data:
        for line in raw_data:
            print(line)

Выход

0478010-c220e751f9b4344cfb419c85e1f9cd34.txt0000644000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -909fa5f2b7a244ebacaa521125ebe7f2.txt00006440000000000000000000002222000000000222200000000001515306 0ustar 00000000000000Самые лучшие 10 списков игр созданы с целью express похвалы тех игр, которые стремятся к совершенству. Другие для того, чтобы высмеивать тех, кто не порезал горчицу. Это для активного разглагольствования об играх, которые слишком оскорбительны для их же блага. Продолжайте читать о десяти видеоиграх, которые настолько оскорбительны в расовом отношении, что их следует по возможности избегать. Этот список может содержать материалы, которые некоторые читатели могут посчитать оскорбительными.

0376076-ff4ad186cd4073d31f936f974d3b7b4d.txt000064400000000000000000000060430000000000000000000000000604300000000000015217 0ustar 00000000000000Samuel E. Папа нужен быстрый деньги. Арендодатель поднял арендную плату на свою парикмахерскую с головы до ног на юго-западе Вашингтона, счета накапливались, и он был на грани закрытия.

0537010-0d140b52bee6c724ec9e065e5f55a2b6.txt00006440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 16 октября 1941 года глава государства Виши Маршал Филипп Петен объявил тюремное заключение тем, кого он считал ответственным за падение Франции.


Как я могу избавиться от этих странных линий в начале строк? ?

Мне даже не удается их легко удалить с помощью line = line[find(weird_text) + len(weird_text):] (но я предпочитаю решение, где это не нужно).

1 Ответ

0 голосов
/ 05 мая 2020

Очевидно, я должен был просто использовать tar -xf file снова, поскольку файлы не были .xz, они были .tar - хотя и с другим расширением.

...