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

2018-07-11 03:41:43来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

以后再追加注释

#! 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))

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:知乎上男多女少,毋庸置疑!我用Python挖掘了200位知乎小姐姐!

下一篇:Python提取图片中的文字信息,腾讯内部技术,一行代码搞定!