Python ZipFile 基本名称

3

我有一些作业需要完成。我不想得到答案,只是开始做起来有些困难。我尝试了一些方法,但都不起作用……请问有人可以给我指点方向吗?我正在努力学习,但经过反复尝试后,我需要一些帮助。

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

以下是作业要求:

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

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

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

再次感谢,任何方向都将是有益的。

1个回答

4

我需要知道你自己尝试了些什么,所以我只会给出一些标准库中的方法指针:

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

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

  • os.path.isdirinspectorG4adget提到的os.path.isfile的相反操作

  • 使用os.path.join将文件名与基本目录连接起来,无需担心斜杠和分隔符

  • ZipFile用于处理zip文件

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

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


1
另外,os.path.isdir 用于判断给定的路径是否指向一个目录。 - inspectorG4dget

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接