【项目2】将csv文件转为xlsx

以后再追加注释

#! python3
'''
Author: i_orange

将csv转为xlsx的小程序

'''
import csv, openpyxl, os, time

def convert():
    pass

print('%%请将要转换的csv文件放置到空文件夹下%%')

path = input('请输入csv文件所在文件夹路径:')

pathList = path.split(os.sep)
newPath = (os.sep).join(pathList)

#0.切换到工作目录
os.chdir(newPath)

#1.程序计时
start = time.clock()
data = time.strftime('%Y%m%d%H%M%S')

#2. 计数
count = 1

#2.创建处理后的保存目录
newDir = ['转换后',data]
pathList.extend(newDir)

newPath1 = (os.sep).join(pathList)
os.makedirs(newPath1,exist_ok = True)

#3.列出工作目录下的文件
for folderName, subFolderNames, fileNames in os.walk(newPath):
##    print('当前所在文件夹名称:'+ folderName)
    #子文件夹
    for subFolderName in subFolderNames:
##        print('包含的子文件夹有:'+ subFolderName)
        pass

    #子文件
    for fileName in fileNames:
##        print('包含的文件有:' + fileName)

        if fileName.endswith('csv'):
            #创建空的xlsx
            wb = openpyxl.Workbook()
            sheet = wb.create_sheet()
            sheet.title = 'Sheet1'

            del wb['Sheet']
            #
            with open(fileName,'r') as f:
                lines = csv.reader(f)
                i = 1

                for k,line in enumerate(lines):
##                    print(k)
                    numLines = len(line)    #列数
                    for j in range(0,numLines):
                        try:
                            sheet.cell(row=k+1,column=j + 1).value = float(line[j])
                        except ValueError:
                            sheet.cell(row=k+1,column=j + 1).value = line[j]
                wb.save(newPath1 + os.sep + fileName.split('.csv')[0] + '.xlsx')
                count += 1
                print(fileName + '转换完成')
    end = time.clock()
print('数据处理耗时:%f s \n处理文件数:%d' %((end-start),count))

 

转载于:https://www.cnblogs.com/i-orange/p/9293474.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值