Python将CSV文件批量复制多份并在最后合并
以下是使用Python复制和合并CSV文件的示例代码:
import csv
import os
# 设置源CSV文件夹和目标CSV文件夹
source_folder = './source_csv'
target_folder = './target_csv'
# 设置要复制的CSV文件名列表和复制的副本数量
csv_file_names = ['file1.csv', 'file2.csv', 'file3.csv']
num_copies = 3
# 复制CSV文件
for csv_file_name in csv_file_names:
# 创建目标CSV文件夹
if not os.path.exists(target_folder):
os.makedirs(target_folder)
# 逐个复制CSV文件
for i in range(num_copies):
source_file_path = os.path.join(source_folder, csv_file_name)
target_file_path = os.path.join(target_folder, f'{csv_file_name[:-4]}_{i+1}.csv')
with open(source_file_path, 'r', newline='') as source_file, open(target_file_path, 'w', newline='') as target_file:
csv_reader = csv.reader(source_file)
csv_writer = csv.writer(target_file)
for row in csv_reader:
csv_writer.writerow(row)
# 合并CSV文件
merged_csv_file_path = os.path.join(target_folder, 'merged_file.csv')
with open(merged_csv_file_path, 'w', newline='') as merged_file:
csv_writer = csv.writer(merged_file)
# 逐个读取CSV文件并合并
for csv_file_name in csv_file_names:
for i in range(num_copies):
source_file_path = os.path.join(target_folder, f'{csv_file_name[:-4]}_{i+1}.csv')
with open(source_file_path, 'r', newline='') as source_file:
csv_reader = csv.reader(source_file)
for row in csv_reader:
csv_writer.writerow(row)
# 删除每个副本文件
os.remove(source_file_path)
上述代码将从./source_csv文件夹中复制file1.csv、file2.csv和file3.csv三个CSV文件,复制每个文件的副本数量为3,也就是说每个CSV文件将复制3份。然后将这些副本CSV文件合并为一个CSV文件,并将合并后的文件保存在./target_csv/merged_file.csv中。最后,删除所有副本文件。
原文地址: https://www.cveoy.top/t/topic/bmnY 著作权归作者所有。请勿转载和采集!