您当前的位置:首页 > 电脑办公 > excel
| PPT | 电脑打字 | 计算机基础 | word | excel | Linux教程 |

自学教程:Python批量处理csv文件转Excel--xlsx文件

51自学网 2021-11-26 11:27:56
  excel
这篇教程Python批量处理csv文件转Excel--xlsx文件写得很实用,希望能帮到您。

Python批量处理csv文件转Excel--xlsx文件——利用pandas库(csv文件可指定分隔符)

 

最近工作需要处理大量csv文件转换成.xlsx进行数据处理,手动转换效率低,于是上网查了很多批量转csv教程,可惜的是所有教程几乎都是默认csv分隔符为逗号,很不幸的是我的csv文件是分号 “;” 作为分隔符,查了半天终于找到答案,在读取csv文件时可以指定分隔符号sep=';',研究了很久终于大功告成,记录一下以便查看。下面附带全部代码。

data_csv = pd.read_csv(file, encoding='latin1', error_bad_lines=False, sep=';')     # 读取以分号为分隔符的csv文件   sep作用为指定分隔符,默认在Windows系统系分隔符为逗号

转换前:

csv文件,文件名: 1-PH

转换后:

.xlsx文件,文件名1-PH

 

# -*- coding:utf-8 –*-

'''
程序用来将csv批量转换为excel文件。指定源路径和目标路径。
在main函数中指定源文件路径source,目标文件路径ob.
这个程序假设csv文件放在:"C:\\Users\\Administrator\\Desktop\\ceshi\\csv文件"
输出excel文件到:"C:\\Users\\Administrator\\Desktop\\ceshi\\xlsx文件"
'''

# 导入pandas
import pandas as pd
import os


# 建立单个文件的excel转换成csv函数,file 是excel文件名,to_file 是csv文件名。 sep=';'以分号分隔的csv文件;error_bad_lines=False 忽略错误行数据
def csv_to_xlsx(file, to_file):

    data_csv = pd.read_csv(file, encoding='latin1', error_bad_lines=False, sep=';')     # 读取以分号为分隔符的csv文件   sep作用为指定分隔符,默认在Windows系统系分隔符为逗号
    data_csv.to_excel(to_file, sheet_name='data')

# 读取一个目录里面的所有文件:
def read_path(path):
    dirs = os.listdir(path)
    return dirs


# 主函数
def main():
    # 源文件路径
    source = "C:\\Users\\Administrator\\Desktop\\ceshi\\csv文件"

    # 目标文件路径
    ob = "C:\\Users\\Administrator\\Desktop\\ceshi\\xlsx文件"

    # 将源文件路径里面的文件转换成列表file_list
    file_list = [source + '\\' + i for i in read_path(source)]

    a = 0       # 列表索引csv文件名称放进j_list列表中,索引0即为第一个csv文件名称
    j_list = read_path(source)       # 文件夹中所有的csv文件名称提取出来按顺序放进j_list列表中
    print("---->", read_path(source))       # read_path(source) 本身就是列表
    print("read_path(source)类型:", type(read_path(source)))
    # 建立循环对于每个文件调用excel_to_csv()
    for it in file_list:
        j = j_list[a]    # 按照索引逐条将csv文件名称赋值给变量j
        # 给目标文件新建一些名字列表
        j_mid = str(j).replace(".csv", "")   # 将csv文件名中的.csv后缀去掉
        print("====", j_mid)
        j_xlsx = ob + '\\' + j_mid + ".xlsx"
        csv_to_xlsx(it, j_xlsx)
        print("######", it)
        a = a+1


if __name__ == '__main__':
    main()

转换为Excel之后如果需要将转换格式之后的Excel文件批量合并,可以参考我的这篇博客:

Python-pandas批量读取同一文件夹下的所有.xlsx文件并提取指定列写入一张excel表


Python之xlsx文件与csv文件相互转换
python 对Excel 文档的基本操作
51自学网,即我要自学网,自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1