爬虫同事帮忙爬了个网站信息,网站上有300多页,每页生成一个 Excel 文件,为方便处理,我需要合并成一个 all.csv 文件。
不废话,上代码:
import pandas as pd
import os
def process_data():
folder_path = r'/Users/example'
# 要拼接的文件夹及其完整路径,注意不要包含中文
saveFile_path = r'/Users/example/' #拼接后要保存的文件路径
saveFile_name = r'all.csv' #合并后要保存的文件名
# 修改当前工作目录
os.chdir(folder_path)
# 将该文件夹下的所有文件名存入一个列表
file_list = os.listdir()
# print(file_list)
# 读取第一个CSV文件并包含表头,默认编码方式为 UTF-8
df = pd.read_excel(folder_path + '/'+ file_list[0])
print(df)
# 将读取的第一个 CSV 文件写入合并后的文件保存
df.to_csv(saveFile_path + saveFile_name,index=False)
# 遍历列表中所有 CSV 并追加到合并文件的末尾
for i in range(1,len(file_list)):
print(folder_path + '/'+ file_list[i])
# 如果是以下两个文件,则跳过
if file_list[i] == 'all.csv' or file_list[i] == '.DS_Store':
pass
else:
# 不包含表头
df = pd.read_excel(folder_path + '/'+ file_list[i], header = 1)
df.to_csv(saveFile_path + saveFile_name,index=False, header=False, mode='a+')
if __name__ == '__main__':
process_data()
代码思想有借鉴 https://blog.csdn.net/kxw1994/article/details/76465152 中的方法,特此感谢。
以上,问题解决~