因为用到了模块openpyxl python自带库不含有 需要先安装这个模块。
-安装模块
pip install openpyxl
(当然如果你是windows系统建议参照该链接先安装pip 然后在执行pip安装安装地址)
-环境变量一定要设置好(cmd窗口 python 和pip命令验证)
-实现代码
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import openpyxl
import csv
import os
def walkFile(file):
for root, dirs, files in os.walk(file):
# root 表示当前正在访问的文件夹路径
# dirs 表示该文件夹下的子目录名list
# files 表示该文件夹下的文件list
#转换文件类型
Const_Image_Format = ["csv"]
# 遍历文件
times=1
for f in files:
print('************************************************************')
csv_file_name=os.path.join(root, f)
file_name = os.path.basename(csv_file_name)
excel_file_name = file_name.split('.')[0]
file_type = file_name.split('.')[1]
print(file_type)
if file_type in Const_Image_Format :
# 创建工作簿对象
print('This is ' + str(times) + ' Convert Start')
work_book = openpyxl.Workbook()
# 创建sheet
work_sheet = work_book.create_sheet(title="sheet1")
csvfile = open(csv_file_name, 'r',encoding='UTF-8')
# 获取csv.reader
lines = csv.reader(csvfile)
print(lines)
# row
row = 1
# csv文件中假如不包含标题可以使用如下代码加入
# title_list 中写入每个标题名称以逗号相隔
# title_list = [u'标题']
#
# # 写入第一行,标题
# for i in range(1, title_list.__len__() + 1):
# work_sheet.cell(row=row, column=i).value = title_list[i - 1]
# 写入从csv读取的内容 如使用了以上代码 这里行数要加一
for line in lines:
# print(line)
lin = 1
for i in line:
work_sheet.cell(row=row, column=lin).value = i
lin += 1
row += 1
# 关闭文件
csvfile.close()
# 保存工作表
work_book.save(excel_file_name + '.xlsx')
print('This is ' + str(times) + ' Convert End')
print('************************************************************')
#转换过后的文件重命名
os.rename(csv_file_name,csv_file_name + 'bak')
times = times + 1
# 遍历所有的文件夹
for d in dirs:
print(os.path.join(root, d))
def main():
walkFile(r'C:/NewPan/lzg_python/csv/')