如何在函数中写入已关闭的 zip 文件夹? [复制]

Posted

技术标签:

【中文标题】如何在函数中写入已关闭的 zip 文件夹? [复制]【英文标题】:How do I write to a closed zip folder in a function? [duplicate] 【发布时间】:2021-01-10 15:20:53 【问题描述】:

我想将 json 文件写入函数中的 zip 文件夹 问题是:在函数结束时,我必须关闭 zip,所以当我重新运行函数并将另一个 json 保存到它时,它不会保存为已关闭。 我是超级初学者,谁能给点方向/指导?

def ExportJson(files):

    now = datetime.now()
    now_date = now.strftime("%d%m%y")

    # new json name
    new_json_name = now_date + new_fname + ".json"

    # saves dataframe to json
    files.to_json(new_json_name)

    # new zip file name
    new_zip_name = work_dir + "/" + new_fname + ".zip"

    # Create new zip file
    zip_file = zipfile.ZipFile(new_zip_name, 'w', zipfile.ZIP_DEFLATED)

    # Write json to zip
    zip_file.write(new_json_name)
    zip_file.close()

【问题讨论】:

【参考方案1】:
def export_json(files):
    now = datetime.now()
    now_date = now.strftime("%d%m%y")
    new_fname = 'temp' + now_date

    # new json name
    new_json_name = new_fname + ".json"

    # new zip file name
    new_zip_name = new_fname + ".zip"

    with zipfile.ZipFile(new_zip_name, 'w', zipfile.ZIP_DEFLATED) as myzip:
        myzip.writestr(new_json_name, files.to_json())

【讨论】:

以上是关于如何在函数中写入已关闭的 zip 文件夹? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

无法写入新的 MemoryStream - 流已关闭

如何重新打开已关闭的文件描述符

Python在Zip文件中打开文件[关闭]

如何使用win32 CreateProcess函数等到孩子完成写入文件

如何获取最新的 JRE / JDK 作为 zip 文件而不是 EXE 或 MSI 安装程序? [关闭]

如何创建一个空的 zip 文件?