ディレクトリのコンテンツを圧縮する次のスクリプトを編集するのに助けが必要です。私の最終的な目標は、C:\Test (内部に複数のディレクトリがある) を見て、C:\Test の各ディレクトリの内容を含む新しい zip ファイルを作成するスクリプトを作成することです。トリッキーな部分は、ディレクトリの実際のパスが C:\Test であっても、パスを C:\ にする必要があることです。これは可能ですか、それとも私は夢を見ていますか?
ありがとう
import zipfile, os
def makeArchive(fileList, archive):
try:
a = zipfile.ZipFile(archive, 'w', zipfile.ZIP_DEFLATED)
for f in fileList:
print "archiving file %s" % (f)
a.write(f)
a.close()
return True
except: return False
def dirEntries(dir_name, subdir, *args):
fileList = []
for file in os.listdir(dir_name):
dirfile = os.path.join(dir_name, file)
if os.path.isfile(dirfile):
if not args:
fileList.append(dirfile)
else:
if os.path.splitext(dirfile)[1][1:] in args:
fileList.append(dirfile)
# recursively access file names in subdirectories
elif os.path.isdir(dirfile) and subdir:
print "Accessing directory:", dirfile
fileList.extend(dirEntries(dirfile, subdir, *args))
return fileList
if __name__ == '__main__':
folder = r'C:\test'
zipname = r'C:\test\test.zip'
makeArchive(dirEntries(folder, True), zipname)