Ich habe mehrere csv-Dateien, von denen einige komprimiert sind, andere nicht, alle in einem 7z-Archiv. Ich möchte die CSV-Dateien lesen und den Inhalt in einer Datenbank speichern. Wenn jedoch py7zlib versucht, die Daten aus einer CSV-Datei zu lesen, die tatsächlich nicht komprimiert ist, erhalte ich den Fehler data error during decompression
.Python-Extrakt unkomprimierte Daten aus 7z-Datei
import os
import py7zlib
scr = r'Y:\PathtoArchive'
z7file = 'ArchiveName.7z'
with open(os.path.join(scr,z7file),'rb') as f:
archive = py7zlib.Archive7z(f)
names = archive.filenames
for mem in names:
obj = archive.getmember(mem)
print obj.compressed # prints None for uncompressed data
try:
data = obj.read()
except Exception as er:
print er # prints data error during decompression
# whenever obj.compressed is None
Der Fehler tritt in
File "C:\Anaconda\lib\site-packages\py7zlib.py", line 608, in read
data = getattr(self, decoder)(coder, data, level)
File "C:\Anaconda\lib\site-packages\py7zlib.py", line 671, in _read_lzma
return self._read_from_decompressor(coder, dec, input, level, checkremaining=True, with_cache=True)
File "C:\Anaconda\lib\site-packages\py7zlib.py", line 646, in _read_from_decompressor
tmp = decompressor.decompress(data)
ValueError: data error during decompression
Also, wie kann ich nicht komprimierte Daten von einem 7z-Archive zu extrahieren?
Hat die komprimierte Datei ein Passwort? –
nein. Keine der Dateien hat ein Passwort. – user3820991