Ошибка python 2.5 при распаковке большого файла dbf

Итак, у меня есть каталог с довольно большими, заархивированными, шейп-файлами. В настоящее время у меня есть код на python 2.5, который распаковывает большинство файлов (т.е. все компоненты шейп-файлов .shp, .prj, .dbf ...), но у меня возникают проблемы с распаковкой некоторых файлов .dbf.

Площадь этих файлов обычно довольно велика, когда у меня возникают проблемы (например, 30 МБ), но размер файла не является общей проблемой при распаковке, поскольку иногда файл меньшего размера не работает.

Я просмотрел возможные специальные символы в пути к файлу (он содержит «-» и «/»), но, похоже, это не проблема с другими файлами .dbf. Я также посмотрел на длину пути к файлу, что тоже не проблема, поскольку другие длинные пути к файлу не представляют проблемы.

7Zip распакует файлы .dbf. У меня проблемы с распаковкой с помощью python unzip, поэтому файлы не повреждены.

Я знаю, что простым решением было бы распаковать все файлы перед запуском моей дополнительной обработки в python, но, поскольку они поступают в виде заархивированного архива, было бы удобнее всего этого не делать.

Мысли оценены.


person L_1    schedule 23.08.2011    source источник
comment
Вы на самом деле не сказали нам, в чем проблема? Вы получаете сообщение об ошибке? Вы можете показать нам обратную связь? Можете ли вы загрузить куда-нибудь один из файлов меньшего размера, чтобы люди могли сами его протестировать?   -  person Thomas K    schedule 23.08.2011
comment
Извините, я должен был предоставить следующую информацию. Строка с ошибками: text.write (opendirec.read (n)), а код ошибки: Ошибка ввода-вывода [Errno 22] недопустимый аргумент. Аргумент I имеет строковый тип. Если посмотреть на это дальше, проблема может быть связана с процессом чтения / записи, а не с распаковкой, поскольку создается пустой файл с правильным именем, но в нем ничего нет.   -  person L_1    schedule 24.08.2011
comment
Может ли n в вашем коде быть строкой вместо числа?   -  person Thomas K    schedule 24.08.2011


Ответы (1)


Две возможные проблемы-кандидаты: файл для извлечения либо пуст, либо его размер превышает 2 ГБ. Обе эти проблемы были исправлены в версии 2.6 или 2.7.

Если ни то, ни другое не соответствует действительности, размещение одного из виновных zip-архивов в общедоступном месте поможет нам отследить проблему.

person Ethan Furman    schedule 08.09.2011