如何在 Python 中的 Windows 文件夹中解压 zip 文件
How to decompress zip files across a Windows folder in Python
我有一个包含 900 多个子文件夹的大文件夹,每个子文件夹中都有另一个文件夹,该文件夹又包含一个压缩文件。
就像-
-我的文件夹
-----我的子文件夹
----------我的子文件夹
--------------MyFile.zip
我如何使用 Python 将所有压缩文件解压到它们各自的文件夹或 Windows 中其他地方的单独文件夹中?
任何帮助都会很棒!!
您可以尝试类似的方法:
import zipfile,os;
def unzip(source_filename, dest_dir):
with zipfile.ZipFile(source_filename) as zf:
for member in zf.infolist():
extract_allowed = True;
path = dest_dir;
words = member.filename.split('/');
for word in words:
if (word == '..'):
extract_allowed = False;
break;
if (extract_allowed == True):
zf.extract(member, dest_dir);
def unzipFiles(dest_dir):
for file in os.listdir(dest_dir):
if (os.path.isdir(dest_dir + '/' + file)):
return unzipFiles(dest_dir + '/' + file);
if file.endswith(".zip"):
print 'Found file: "' + file + '" in "' + dest_dir + '" - extracting';
unzip(dest_dir + '/' + file, dest_dir + '/');
unzipFiles('./MyFolder');
我有一个包含 900 多个子文件夹的大文件夹,每个子文件夹中都有另一个文件夹,该文件夹又包含一个压缩文件。
就像-
-我的文件夹
-----我的子文件夹
----------我的子文件夹
--------------MyFile.zip
我如何使用 Python 将所有压缩文件解压到它们各自的文件夹或 Windows 中其他地方的单独文件夹中?
任何帮助都会很棒!!
您可以尝试类似的方法:
import zipfile,os;
def unzip(source_filename, dest_dir):
with zipfile.ZipFile(source_filename) as zf:
for member in zf.infolist():
extract_allowed = True;
path = dest_dir;
words = member.filename.split('/');
for word in words:
if (word == '..'):
extract_allowed = False;
break;
if (extract_allowed == True):
zf.extract(member, dest_dir);
def unzipFiles(dest_dir):
for file in os.listdir(dest_dir):
if (os.path.isdir(dest_dir + '/' + file)):
return unzipFiles(dest_dir + '/' + file);
if file.endswith(".zip"):
print 'Found file: "' + file + '" in "' + dest_dir + '" - extracting';
unzip(dest_dir + '/' + file, dest_dir + '/');
unzipFiles('./MyFolder');