我有一些作业要完成。我不想要答案。我只是在开始时遇到了麻烦。我尝试过的工作根本不起作用......有人可以插入正确的方向吗?我正在努力学习,但在尝试和尝试之后,我需要一些帮助。

我知道我可以使用 os.path.basename() 来获取基本名称,然后将其添加到文件名中,但我无法将它们组合在一起。

这是任务

在此项目中,编写一个函数,该函数采用目录路径并仅创建该目录的存档。例如,如果使用与示例 ("c:\\xxxx\\Archives\\archive_me") 相同的路径,则 zipfile 将包含 archive_me\\grouchoarchive_me\\harpoarchive_me\\chico

基目录(上例中的 archive_me )是输入的最后一个元素,zipfile 中记录的所有路径都应以基目录开头。

如果目录包含子目录,则不应包含子目录名称和子目录中的任何文件。 (提示:您可以使用 isfile() 来确定文件名是否代表常规文件而不是目录。)

再次感谢任何方向都会很棒。

最佳答案

了解您自己尝试过的内容会有所帮助,因此我仅提供了一些指向标准库中方法的指针:

  • os.listdir 获取给定目录下的文件和文件夹列表(注意,它只返回文件/文件夹名称,而不是完整路径!)
  • os.path.isfile 如作业中所述,用于检查给定路径是否代表文件或文件夹
  • os.path.isdir os.path.isfile 的反面(感谢 inspectorG4adget )
  • os.path.join 将文件名与 basedir 连接在一起,而不必担心斜线和分隔符
  • ZipFile 用于处理压缩文件
  • zipFile.write 将找到的文件写入 zip

  • 我不确定您是否需要所有这些,但知道它们存在并没有什么坏处。

    关于python zipfile 基本名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13505569/

    10-13 02:44