python读取存储csv/excel文件

1. 关于csv文件

1.1 python读取csv文件

import pandas as pd
df = pd.read_csv('./data.csv', encoding='utf-8')

1.2 python存储csv文件

import pandas as pd
df = pd.DataFrame({'A':[1], 'B':[2]})
df.to_csv('./data.csv', encoding='utf-8')

1.3 python将csv文件转为excel文件

def csv2excel(folder_name, excel_path):
    """
    给定文件夹,将文件夹下的所有csv文件转成一个excel文件  excel文件的sheet name对于csv的文件名
    :param folder_name: 需要转的文件夹下的文件
    :param excel_path: 存放excel文件的路径
    :return:
    """
    with ExcelWriter(excel_path, mode='w') as writer:
        for dirpath, dirnames, filenames in os.walk(folder_name):
            for filename in filenames:
                if filename.endswith('.csv'):
                    file_path = os.path.join(dirpath, filename)
                    pd.read_csv(file_path).to_excel(writer, sheet_name=os.path.splitext(filename)[0], index=False)

2. 关于excel文件

2.1 python读取excel文件
(1)python读取多个sheet的excel文件

import pandas as pd
time_start = time.time()
dfs = pd.read_excel('./多个sheet.xlsx', sheet_name=None)
keys = list(dfs.keys())
result = pd.DataFrame()
num = 1
for i in keys:
    df = dfs[i]
    print(f'第{num}个 sheet 的数据如下:\n{df}')
    # result = pd.concat([result,df])
time_end = time.time()
print('共耗时 {}分 {}秒'.format(int(round((time_end - time_start) / 60,0)),round((time_end - time_start) % 60,2)))

(2)python合并多个excel:
os.walk()文件目录遍历器
语法:os.walk(file_path),file_path为需要遍历的目录地址,返回一个三元组(dirpath, dirnames, filenames)。
1)dirpath所指的是当前正在遍历的这个文件夹的地址,root与file_path相同
2)dirnames 是一个 list ,内容是该文件夹中所有目录的名字
3)filenames 是一个 list , 内容是该文件夹中所有文件的名称
实际运用中最常用到的返回值是files

import os
import pandas as pd
def append(path): #path:所有需要合并的excel文件所在的文件夹
    filename_excel = [] # 建立一个空list,用于储存所有需要合并的excel名称
    frames = [] # 建立一个空list,用于储存dataframe
    for dirpath, dirnames, filenames in os.walk(path):
        for file in filenames:
        	file_with_path = os.path.join(dirpath, file) 
            filename_excel.append(file_with_path)
            df = pd.read_excel(file_with_path, engine='openpyxl')
            # 将文件名中包含的日期信息写入dataframe的日期列:
            # df["日期"] = pd.to_datetime(file.strip('.xls')[-1:])  # 根据情况调整日期位置
            # 将sheet名称命名为excel的名字:
            # df.to_excel(writer, sheet_name=file.strip('.xls'))  # 删除文件名的后缀,如.xlsx/.csv
            frames.append(df)
    df = pd.concat(frames, axis=0)
    return df
file_path = './file_name'
append(file_path)

os.listdir():参数为文件夹路径,可以返回文件夹下的所有子文件夹、文件名称;但是不能返回子文件夹下的文件,并且仅返回名称。

import os
# 项目所在的绝对路径
project_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
resource_dir = os.path.join(project_dir, 'resource')
file_list = []
for file_name in os.listdir(os.path.join(resource_dir, "ori_data")):
    file_list.append(file_name.split(".")[0])

2.2 python存储excel文件

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值