问题描述
我想为我的zip文件中的目录添加显式条目。例如,我的zip文件包括:
assets/images/logo.png
实际上,我需要它包括:
assets/
assets/images/
assets/images/logo.png
所以我的问题是,如何使用相对路径将目录添加为显式条目?我尝试使用zip.write(relative/path/to/directory)
,但是它说找不到目录,因为它是相对路径。我放的时候就可以了
/Users/i510118/Desktop/Engineering/kit-dev-portal-models/src/kit_devportal_models/static_data/static_extension/created_extnsn_version_update2/assets/images/logo.png
在zipfile.write()里面,但是我需要它只是相对路径,这只是
assets/images/logo.png
这可能吗?
这是我的完整代码
buf = io.BytesIO()
zipObj = zipfile.ZipFile(buf,"w")
extension_folder = "created_extnsn_version_update2"
with zipObj:
# Iterate over all the files in directory
for folderName,subfolders,filenames in os.walk(path_to_extension_directory):
# If the folder is not the root folder the extension is in
if not folderName.endswith(extension_folder):
folder = folderName.split(f"{extension_folder}/",1)[1]
else:
folder = ''
for filename in filenames:
# create complete filepath of file in directory
filePath = os.path.relpath(os.path.join(folderName,filename),path_to_extension_directory)
with open(f"{folderName}/{filename}",'rb') as file_data:
bytes_content = file_data.read()
# Add folder to zip if its not the root directory
if folder:
zipObj.write(folder)
# Add file to zip
zipObj.writestr(filePath,bytes_content)
# edit zip file to have all permissions
zf = zipfile.ZipFile(buf,mode='a')
info = zipfile.ZipInfo(f"{folderName}/{filename}")
info.external_attr = 0o777 << 16
zf.writestr(info,f"{folderName}/{filename}")
# Rewind the buffer's file pointer (may not be necessary)
buf.seek(0)
return buf.read()
如果您需要更多信息,请告诉我!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)