python教程—python/zip:如果提供了文件的绝对路径,如何消除zip归档中的绝对路径?-Python实用宝典

python教程—python/zip:如果提供了文件的绝对路径,如何消除zip归档中的绝对路径?

我有两个文件在两个不同的目录,一个是'/home/test/first/first。另一个是/home/text/second/second.pdf。我使用以下代码来压缩它们:

我有两个文件在两个不同的目录,一个是'/home/test/first/first。另一个是/home/text/second/second.pdf。我使用以下代码来压缩它们:

    import zipfile, StringIO buffer = StringIO.StringIO() first_path = '/home/test/first/first.pdf' second_path = '/home/text/second/second.pdf' zip = zipfile.ZipFile(buffer, 'w') zip.write(first_path) zip.write(second_path) zip.close()

打开创建的zip文件后,其中有一个主文件夹,然后有两个子文件夹,第一个和第二个,然后是pdf文件。我不知道如何只包含两个pdf文件,而不是将完整的路径压缩到zip归档文件中。希望我能把我的问题讲清楚,请大家多多指教。谢谢。

回答

zipfile write()方法支持一个额外的参数(arcname),它是要存储在zip文件中的存档名称,所以您只需要用以下代码更改您的代码:

    from os.path import basename ... zip.write(first_path, basename(first_path)) zip.write(second_path, basename(second_path)) zip.close()

当您有空闲时间阅读将会很有帮助。

​Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

本文由 Python实用宝典 作者:Python实用宝典 发表,其版权均为 Python实用宝典 所有,文章内容系作者个人观点,不代表 Python实用宝典 对观点赞同或支持。如需转载,请注明文章来源。
1

发表评论