以下是Python实现批量上传Excel的代码示例:
import os
import pandas as pd
# 设置上传文件夹路径
upload_path = 'upload_files'
# 获取上传文件夹中的所有文件名
files = os.listdir(upload_path)
# 遍历上传文件夹中的所有文件
for file_name in files:
# 读取Excel文件数据
file_path = os.path.join(upload_path, file_name)
df = pd.read_excel(file_path)
# TODO: 在这里做数据处理和操作
# 输出处理结果到控制台
print(f'{file_name} 共有 {len(df)} 条数据,处理后数据为:')
print(df.head())
# TODO: 在这里做数据保存和上传操作
在上述代码中,我们首先通过 os.listdir()
方法获取了指定文件夹中的所有文件名,然后遍历每个文件,读取其数据并进行处理,最后输出处理结果到控制台。需要注意的是,由于不同的Excel文件可能具有不同的数据结构,因此在进行数据处理时需要根据实际情况进行调整。此外,我们还需要在代码中添加数据保存和上传的操作,具体实现方式视具体情况而定。
实现批量上传 Excel 的多线程版本代码示例:
import os
import pandas as pd
from concurrent.futures import ThreadPoolExecutor
# 设置上传文件夹路径
upload_path = 'upload_files'
# 定义处理单个文件的函数
def process_file(file_name):
# 读取Excel文件数据
file_path = os.path.join(upload_path, file_name)
df = pd.read_excel(file_path)
# TODO: 在这里做数据处理和操作
# 输出处理结果到控制台
print(f'{file_name} 共有 {len(df)} 条数据,处理后数据为:')
print(df.head())
# TODO: 在这里做数据保存和上传操作
# 获取上传文件夹中的所有文件名
files = os.listdir(upload_path)
# 创建线程池并提交任务
with ThreadPoolExecutor() as executor:
for file_name in files:
executor.submit(process_file, file_name)
在上述代码中,我们使用了 ThreadPoolExecutor
类来创建一个线程池,然后使用 submit()
方法将每个文件的处理任务提交到线程池中。这样可以让程序同时处理多个文件,提高程序的效率。需要注意的是,由于多线程并发执行,因此在进行数据处理和操作时需要注意线程安全性,避免出现数据竞争和冲突等问题。