在Python中批量保存文件可以通过多种方式实现,以下是一些示例代码,展示了如何使用Python进行批量保存文件的操作:
示例1:按月份保存Word文档
import osimport refrom pprint import pprintorigin_dir = '原始文件/'target_dir = '目标文件/'files = os.listdir(origin_dir)month_compile = re.compile('(20\d\d)([0-9])')file_dict = {}for file in files:if file.endswith('.docx'):word_file = os.path.join(origin_dir, file)month = month_compile.search(word_file)if month:month = month.groups()if month[-1] == '00':month = re.search('(20\d\d)0([0-9])', word_file).groups()t1 = '-'.join(month)if t1 in file_dict.keys():file_dict[t1].append(word_file)else:file_dict[t1] = [word_file]for key, value in file_dict.items():target_sub_dir = os.path.join(target_dir, key)os.makedirs(target_sub_dir, exist_ok=True)for file in value:shutil.copy2(file, target_sub_dir)pprint(file_dict)
示例2:使用Pandas保存文本数据
import pandas as pdimport osimport reimport jieba设置当前工作路径os.chdir('C:\\Users\\Administrator\\Desktop\\示例数据')读取数据data2 = pd.read_excel('3.xlsx')data2_message = data2['详情']def wenben(a):b = 10000for i in range(len(a)):i_str = str(b + i + 1)file_name = i_str + '.txt'd = a[i]f = open('3详情/' + file_name, 'w', encoding='utf-8')f.write(d)f.close()wenben(data2_message)

示例3:使用zipfile进行文件压缩
import zipfileimport osimport timestart_dir = r'C:\Users\admin\Desktop\批量备份打包\压缩测试'target_dir = r'C:\Users\admin\Desktop\批量备份打包\备份目的地文件夹'today = target_dir + os.sep + time.strftime('%Y%m%d')if not os.path.exists(today):os.makedirs(today)with zipfile.ZipFile(today + '.zip', 'w', zipfile.ZIP_DEFLATED) as zf:for root, _, files in os.walk(start_dir):for file in files:zf.write(os.path.join(root, file), os.path.relpath(os.path.join(root, file), start_dir))
示例4:按组保存文件
import osfolder_capacity = 20def copy_files(src_dir, dest_dir):count = 0current_folder = ''for item in os.listdir(src_dir):abs_item = os.path.join(src_dir, item)if os.path.isfile(abs_item):count += 1if count % folder_capacity == 1:current_folder = os.path.join(dest_dir, str(count // folder_capacity))os.mkdir(current_folder)with open(os.path.join(current_folder, item), 'wb') as f:with open(abs_item, 'rb') as source_file:f.write(source_file.read())copy_files(r'C:\src', r'C:\dest')
示例5:批量下载文件
