import zipfile
import os, sys
import codecs
def unzip_file(parse_path):
target_folder = parse_path.strip('.zip')
with zipfile.ZipFile(parse_path, 'r') as zip_ref:
for file_info in zip_ref.infolist():
# 解决中文文件名乱码问题
file_info.filename = file_info.filename.encode('cp437', 'ignore').decode('gbk')
zip_ref.extract(file_info, target_folder)
def unzip_dir(path):
# path_lst = os.listdir(unicode(extract_to_path, 'utf-8'))
for entry in os.scandir(path):
filename = os.fsdecode(entry.name)
filename = path + '/' + filename
if filename.endswith('.zip'):
unzip_file(filename)
print(filename,'解压完成')
os.remove(filename)
for d in os.scandir(path):
filename = os.fsdecode(d.name)
filename = path + '/' + filename
if os.path.isdir(filename):
unzip_dir(filename)
if __name__ == '__main__':
zip_path = r'C:\Users\86155\Desktop\题库' # 替换为你的.zip文件路径
unzip_dir(zip_path)
文件读取
import os
file_list = []
def get_path(path):
path_list = os.listdir(path)
for p in path_list:
p_temp = path + '/' + p
if os.path.isdir(p_temp):
get_path(p_temp)
elif os.path.isfile(p_temp):
file_list.append({'file_name':os.path.basename(p_temp).split('.')[0],'path':p_temp})
else:
continue
path = r"C:/Users/86155/Desktop/题库"
get_path(path)
print(file_list)