Используя модуль zipfile, я создал сценарий для извлечения моих заархивированных файлов, но метод повреждает все, кроме текстовых файлов.
def unzip(zip):
filelist = []
dumpfold = r'M:\SVN_EReportingZones\eReportingZones\data\input\26012012'
storage = r'M:\SVN_EReportingZones\eReportingZones\data\input\26012012__download_dump'
file = storage + '\\' + zip
unpack = dumpfold + '\\' + str(zip)
print file
try:
time.sleep(1)
country = str(zip[:2])
countrydir = dumpfold + '\\' + country
folderthere = 0
if exists(countrydir):
folderthere = 1
if folderthere == 0:
os.makedirs(countrydir)
zfile = zipfile.ZipFile(file, 'r')
## print zf.namelist()
time.sleep(1)
shapepresent = 0
Здесь у меня проблема - при чтении и записи заархивированных данных команда zipfile, кажется, делает ее непригодной для рассматриваемых программ - я пытаюсь разархивировать шейп-файлы для использования в ArcGIS ...
for info in zfile.infolist():
fname = info.filename
data = zfile.read(fname)
zfilename = countrydir + '\\' + fname
fout = open(zfilename, 'w')# reads and copies the data
fout.write(data)
fout.close()
print 'New file created ----> %s' % zfilename
except:
traceback.print_exc()
time.sleep(5)
Можно ли вызвать WinRar с помощью системной команды и заставить ее распаковать меня? Ура, Алекс
EDIT
Используя метод wb, он работает для большинства моих файлов, но некоторые все еще повреждены. Когда я использовал winRar, чтобы вручную разархивировать проблемные файлы, они загружаются правильно, и они также показывают больший размер файла.
Пожалуйста, кто-нибудь может указать мне направление загрузки winRar для полного процесса распаковки?