3

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

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

这里是任务

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

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

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

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

4

1 回答 1

4

了解您自己尝试了什么会有所帮助,所以我只提供一些标准库中方法的指针:

  • os.listdir获取给定目录下的文件和文件夹列表(注意,它只返回文件/文件夹名称,而不是完整路径!)

  • os.path.isfile如作业中所述,检查给定路径是否代表文件或文件夹

  • os.path.isdir,相反os.path.isfile(感谢inspectorG4adget

  • os.path.join将文件名与 basedir 连接,而不必担心斜线和分隔符

  • ZipFile用于处理 zip 文件

  • zipFile.write将找到的文件写入 zip

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

于 2012-11-22T03:48:53.920 回答