मैं फ़ोल्डर्स और फ़ाइलों को ज़िप करने के लिए इस कोड को चलाता हूं।पायथन - फ़ाइलों को ज़िप करते समय त्रुटि, 'एल' प्रारूप को 0 <= संख्या <= 4294967295
'L' format requires 0 <= number <= 4294967295
फ़ाइल नाम पर उदाहरण जहां ऐसा होता है:
/[Wii]TrackMania[PAL][WiiSOS.com]/ws_tramap.iso
कोई भी विचार कैसे मैं इसे ठीक कर सकते
def save_folder_as_zip(self, folder_to_zip, save_as):
zipf = zipfile.ZipFile(str(save_as), mode="w", allowZip64=True)
self.create_zip(zipf, folder_to_zip)
zipf.close()
return zipf
def create_zip(self, zipf, directory, folder=""):
directory = directory.encode("utf-8")
for item in os.listdir(directory):
if temp_folder == directory + os.sep:
continue
try:
if os.path.isfile(os.path.join(directory, item)):
zipf.write(os.path.join(directory, item), folder + os.sep + item)
elif os.path.isdir(os.path.join(directory, item)):
self.create_zip(zipf, os.path.join(directory, item).decode("utf-8"), folder + os.sep + item)
except Exception, e:
self.schedule.machine.log_warning(str(e))
लेकिन तब मैं इस त्रुटि मिलती है?
Traceback:
Traceback (most recent call last):
File "test.py", line 29, in <module>
save_folder_as_zip("/Users/f/Downloads/", "hei.zip")
File "test.py", line 13, in save_folder_as_zip
create_zip(zipf, folder_to_zip)
File "test.py", line 26, in create_zip
create_zip(zipf, os.path.join(directory, item).decode("utf-8"), folder + os.sep + item)
File "test.py", line 24, in create_zip
zipf.write(os.path.join(directory, item), folder + os.sep + item)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/zipfile.py", line 1100, in write
zinfo.file_size))
struct.error: 'L' format requires 0 <= number <= 4294967295
कौन सी लाइन त्रुटि को ट्रिगर करती है? –
आपकी फाइल 4 जीबी से बड़ी है? और कृपया पूर्ण ट्रेसबैक पेस्ट करें। –
ज़िप्ड की गई निर्देशिका कुल 6 जीबी है, लेकिन उदाहरण में फ़ाइल लगभग 1 जीबी है। – Aola