我正在从一个文件夹(和子文件夹)创建一个 Zip 文件。它工作正常并且还创建了一个新的 .zip 文件,但是我在使用 glob.glob 时遇到了问题。它正在读取所需文件夹(源文件夹)中的所有文件并写入新的 zip 文件,但问题是它是添加子目录,而不是从子目录中添加文件。
我给用户一个选项来选择文件名和路径以及文件类型(Zip 或 Tar)。我在创建 .tar.gz 文件时没有遇到任何问题,但是当使用创建 .zip 文件时,就会遇到这个问题。
这是我的代码:
for name in (Source_Dir):
for name in glob.glob("/path/to/source/dir/*" ):
myZip.write(name, os.path.basename(name), zipfile.ZIP_DEFLATED)
myZip.close()
另外,如果我使用下面的代码:
for dirpath, dirnames, filenames in os.walk(Source_Dir):
myZip.write(os.path.join(dirpath, filename) os.path.basename(filename))
myZip.close()
现在第二个代码获取所有文件,即使它在文件夹/子文件夹中,创建一个新的 .zip 文件并在没有任何目录结构的情况下写入它。它甚至不需要主文件夹的目录结构,只需将主目录或子目录中的所有文件写入该 .zip 文件。
任何人都可以帮助我或建议我。我更喜欢 glob.glob 而不是使用第二个选项。
提前致谢。
问候, 阿卡什