我有一個文件夾結構爲:如何只壓縮文件夾內的文件而不壓縮子文件夾?
/sample/debug/
--debug.exe
--sample.exe
--sample.pdb
--debug.pdb
--sample.dll
--debug.dll
/config
--sample.txt
--new.txt
/general
--general.txt
--code.txt
所以,我要的是隻把拉鍊內部調試中的文件,而不是像子文件夾/配置和/一般。我試過如下:
import zipfile
import os
def append(dir_name):
ret_val = []
fileList = []
for file in os.listdir(dir_name):
try:
dirfile = os.path.join(dir_name, file)
except Exception:
err = sys.exc_info()
print ("Error!", err)
fileList.append(dirfile)
ret_val = fileList
return ret_val
def zip(fileList, archive, root):
ret_val = 0
try:
zip_folder_contents = zipfile.ZipFile(archive, 'w', zipfile.ZIP_DEFLATED)
except Exception:
err = sys.exc_info()
print ("Error!",err)
exit(1)
for filename in fileList:
zip_folder_contents.write(filename,
filename[len(root):].lstrip(os.path.sep).lstrip(os.path.altsep))
zip_folder_contents.close()
return ret_val
make(append_files_in_zipfolder("D:/sample/debug"), "debug.zip",
"D:/sample/debug")
現在,當我執行上面我得到錯誤的權限被拒絕「d:/樣品/調試\\配置」。因此,我無法刪除此錯誤,所以我認爲只包含zip文件夾內的文件並排除子文件夾。所以,無論如何,如何做到這一點,或者我可以刪除我得到的這種權限相關的錯誤。請建議。
什麼是'make()'?函數'append_files_in_zipfolder()'的定義在哪裏? – martineau
查看''''os'''模塊的[Files and Directories](https://docs.python.org/3/library/os.html#files-and-directories)部分,選擇一些方法將幫助你清除目錄,制定一些邏輯清除目錄,把它們放在一起並壓縮文件。 '''''''''''''可能會過度殺傷,但它可能會使它變得簡單。還有其他一些可以使其變得簡單/可能的其他方法。 – wwii