Python &引用;将需要ZIP64扩展名“LargeZipFile:文件大小需要ZIP64扩展

Python &引用;将需要ZIP64扩展名“LargeZipFile:文件大小需要ZIP64扩展,python,python-3.x,pandas,xlsxwriter,Python,Python 3.x,Pandas,Xlsxwriter,您能帮我整理一下这个错误吗?当我试图写一个大文件时,我遇到了一个错误。有没有办法修复这个错误: File "C:\ProgramData\Anaconda3\lib\zipfile.py", line 1696, in _writecheck " would require ZIP64 extensions") LargeZipFile: Filesize would require ZIP64 extensions 这是stacktrace

您能帮我整理一下这个错误吗?当我试图写一个大文件时,我遇到了一个错误。有没有办法修复这个错误:

File "C:\ProgramData\Anaconda3\lib\zipfile.py", line 1696, in _writecheck
    " would require ZIP64 extensions")

LargeZipFile: Filesize would require ZIP64 extensions

这是stacktrace


  File "<ipython-input-1-211b07c43cd8>", line 1, in <module>
    runfile('C:/Users/Administrator/Desktop/new_paul.py', wdir='C:/Users/Administrator/Desktop')

  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 786, in runfile
    execfile(filename, namespace)

  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "C:/Users/Administrator/Desktop/new_paul.py", line 106, in <module>
    output_df = gen_stats()

  File "C:/Users/Administrator/Desktop/new_paul.py", line 104, in gen_stats
    return merge_main(all_users)

  File "C:/Users/Administrator/Desktop/new_paul.py", line 99, in merge_main
    all_users.to_excel('main_with_features_300win.xlsx', index=False)

  File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\generic.py", line 2127, in to_excel
    engine=engine)

  File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\formats\excel.py", line 664, in write
    writer.save()

  File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\excel.py", line 1952, in save
    return self.book.close()

  File "C:\ProgramData\Anaconda3\lib\site-packages\xlsxwriter\workbook.py", line 306, in close
    self._store_workbook()

  File "C:\ProgramData\Anaconda3\lib\site-packages\xlsxwriter\workbook.py", line 679, in _store_workbook
    xlsx_file.write(os_filename, xml_filename)

  File "C:\ProgramData\Anaconda3\lib\zipfile.py", line 1743, in write
    with open(filename, "rb") as src, self.open(zinfo, 'w') as dest:

  File "C:\ProgramData\Anaconda3\lib\zipfile.py", line 1470, in open
    return self._open_to_write(zinfo, force_zip64=force_zip64)

  File "C:\ProgramData\Anaconda3\lib\zipfile.py", line 1580, in _open_to_write
    self._writecheck(zinfo)

  File "C:\ProgramData\Anaconda3\lib\zipfile.py", line 1696, in _writecheck
    " would require ZIP64 extensions")

LargeZipFile: Filesize would require ZIP64 extensions


文件“”,第1行,在
runfile('C:/Users/Administrator/Desktop/new_-paul.py',wdir='C:/Users/Administrator/Desktop')
文件“C:\ProgramData\Anaconda3\lib\site packages\spyder\u kernels\customize\spyderrcustomize.py”,第786行,在运行文件中
execfile(文件名、命名空间)
文件“C:\ProgramData\Anaconda3\lib\site packages\spyder\u kernels\customize\spydercustomize.py”,第110行,在execfile中
exec(编译(f.read(),文件名,'exec'),命名空间)
文件“C:/Users/Administrator/Desktop/new_paul.py”,第106行,在
输出_df=gen_stats()
gen_stats中第104行的文件“C:/Users/Administrator/Desktop/new_paul.py”
返回合并\u main(所有\u用户)
文件“C:/Users/Administrator/Desktop/new_paul.py”,第99行,在merge_main中
所有用户。到excel('main_,带功能\u 300win.xlsx',index=False)
文件“C:\ProgramData\Anaconda3\lib\site packages\pandas\core\generic.py”,第2127行,在excel中
发动机=发动机)
文件“C:\ProgramData\Anaconda3\lib\site packages\pandas\io\formats\excel.py”,第664行,已写入
writer.save()
文件“C:\ProgramData\Anaconda3\lib\site packages\pandas\io\excel.py”,第1952行,保存
return self.book.close()
文件“C:\ProgramData\Anaconda3\lib\site packages\xlsxwriter\workbook.py”,第306行,关闭
自存储工作簿()
文件“C:\ProgramData\Anaconda3\lib\site packages\xlsxwriter\workbook.py”,第679行,在\u store\u工作簿中
xlsx_file.write(os_文件名、xml_文件名)
文件“C:\ProgramData\Anaconda3\lib\zipfile.py”,第1743行,写入
open(文件名,“rb”)作为src,self.open(zinfo,'w')作为dest:
文件“C:\ProgramData\Anaconda3\lib\zipfile.py”,第1470行,打开
返回self._open_to_write(zinfo,force_zip64=force_zip64)
文件“C:\ProgramData\Anaconda3\lib\zipfile.py”,第1580行,在“打开”到“写入”中
自写检查(zinfo)
文件“C:\ProgramData\Anaconda3\lib\zipfile.py”,第1696行,在_writecheck中
“需要ZIP64扩展”)
LargeZipFile:文件大小需要ZIP64扩展

初始化
ZipFile
时,需要传递标志
allowZip64=True
,以允许它存储大于4GB的文件,或存储本身大于4GB的文件


想必这是需要在您正在使用的任何实现
到\u excel
的库中修复的东西。您的问题中没有包含该库的标识,因此我们无法在此进行讨论。

基于@Charles Duffy的分析,您可以使用xlsxwriter引擎启用ZIP64扩展,如下所示:

writer=pd.ExcelWriter('pandas.xlsx',engine='xlsxwriter')
df.to_excel(书写者,工作表名称='Sheet1')
writer.book.use_zip64()

的意思就是它所说的。标准ZIP格式无法存储大小不适合32位整数的文件。因此,请如何修复此错误?有关为什么仅在标志后面添加zip64支持以允许显式启用的Python标准库的历史,请参阅。啊,好的,这是否意味着无法修复此错误?它肯定可以修复,但是,以一种不是丑陋的黑客的方式进行操作将需要更改实际实例化
ZipFile
对象的任何代码。大概这不是您自己编写的代码,而是您用于编写
.xlsx
文件的任何库中的代码。我用于编写大型excel文件的是pandas库。您能否显示整个堆栈跟踪,以便我们知道pandas正在使用哪个库?几乎可以肯定,它本身并没有实现这种格式。我在其中添加了整个stacktrace好的,stacktrace告诉我们pandas正在使用的库名为
xlsxwriter
。根据其变更日志,在0.53版中,它增加了一个
use_zip64
功能。所以,你应该看看pandas是否有调用该函数的方法,如果没有,就写一个补丁让它这样做。