我尝试使用python zipfile模块压缩文件夹中的所有文件(该文件夹没有任何子目录),但似乎无法获得所需的输出。
我folderA
坐在F:\Projects\ProjectA\Folders\folderA and my script under F:\Projects\ProjectA\CodeA\zipcode.py
下面。我想压缩folderA中的所有文件,以便生成的zip文件在folderA.zip
下以F:\Projects\ProjectA\Folders
命名,并带有原始文件名。
唯一的问题是解压缩结果会产生Folders \ folderA而不仅仅是folderA。它与folderA到脚本的相对路径有关,但我似乎无法获得所需的结果。
#zipcode.py
import os
import zipfile
filepath = "F:/Projects/ProjectA/Folders/folderA"
archive = zipfile.ZipFile(os.path.abspath(filepath) + '.zip', 'w')
for root, dirs, files in os.walk(filepath):
for afile in files:
archive.write(os.path.relpath(os.path.join(root, afile)))
archive.close()
答案 0 :(得分:0)
在循环中,使用 pwm: pwm@7e20c000 {
compatible = "brcm,bcm2835-pwm";
reg = <0x7e20c000 0x28>;
clocks = <&clocks BCM2835_CLOCK_PWM>;
assigned-clocks = <&clocks BCM2835_CLOCK_PWM>;
assigned-clock-rates = <10000000>;
#pwm-cells = <2>;
status = "disabled";
};
参数更改归档成员的名称:
arcname
其中
archive.write(os.path.join(root, afile),arcname=name_in_archive)
保留name_in_archive = os.path.join(os.path.basename(filepath),afile)
路径。
我不确定(取决于python的版本)的一件事是你可能不得不用斜杠替换windows反斜杠,因此.zip文件是可移植的。不伤害:
folderA
请注意,由于我们完全控制了档案中文件的名称,因此我暂时不需要archive.write(os.path.join(root, afile),arcname=name_in_archive.replace(os.sep,"/"))
来电。
另请注意,无需在打开存档时转换为绝对路径。 os.path.relpath
找到文件,如果它是相对的,如果它是绝对的:
open
可以写成
archive = zipfile.ZipFile(os.path.abspath(filepath) + '.zip', 'w')