我应该如何在python中同时打开多个csv文件以创建xlsx文件

时间:2019-05-23 11:25:38

标签: python excel csv

我正在一个将.csv文件转换为.xlsx的项目中,我成功实现了代码,但我的要求是立即将目录中的所有.csv文件转换成一个目录,我有点困惑,该怎么办?我这样做 请帮助

我尝试通过给文件提供不同的地址来尝试 但我希望它能循环播放

filename =“ C:\ Python36 \ Form项目\ CI文件\ CCS DATA \ ADD01.csv” filename2 =“ C:\ Python36 \ Form项目\ CI文件\ CCS DATA \ ADD02.csv”

对于glob.glob(os.path.join('。',文件名))中的csvfile:

now = datetime.now().strftime('%d-%m-%y-%H;%M;%S')

workbook = xlsxwriter.Workbook(' '+now+'.xlsx')

worksheet = workbook.add_worksheet()

with open(csvfile, 'rt') as f:
    reader = csv.reader(f)

    for r,row in enumerate(reader):

        print(row)

        r=r+11
        if r>=12:
            break


        #sheet.cell_value(0,r)
        for c, col in enumerate(row):

            c=c+1

            worksheet.write(r, c, col)

对于glob.glob(os.path.join('。',filename2))中的csvfile:

#now = datetime.now().strftime('%d-%m-%y-%H;%M;%S')

#workbook = xlsxwriter.Workbook(' '+now+'.xlsx')

#worksheet = workbook.add_worksheet()

with open(csvfile, 'rt') as f:
    reader = csv.reader(f)

    for r,row in enumerate(reader):

        print(row)

        r=r+12
        if r>=13:
            break

我尝试通过给文件提供不同的地址来尝试 但我希望它能循环播放

2 个答案:

答案 0 :(得分:0)

这可以为您提供帮助,因为您可以遍历文件夹中的每个文件并检查文件是否以.csv结尾。

import os

INPUT_PATH = "C:\Python36\Form project\CI File\CCS DATA\"

for file in os.listdir(INPUT_PATH):
    if file.endswith('.csv') or file.endswith('.CSV'):
        INPUT_FILE = INPUT_PATH + file
        with open(INPUT_FILE, 'rt') as f:
             #your code here

我猜您想将所有.csv数据写入一个.xslx文件吗?否则请添加以下内容:


import os

INPUT_PATH ="C:\Python36\Form project\CI File\CCS DATA\"

for file in os.listdir(INPUT_PATH):
    if file.endswith('.csv') or file.endswith('.CSV'):
        INPUT_FILE = INPUT_PATH + file
        workbook = INPUT_PATH + file[:-4] + 'xlsx'


        with open(INPUT_FILE, 'rt') as f:
             #your code here


编辑: 提供您的其他信息是另外一种尝试: (您可以共享.csv数据以查看您正在处理什么吗?)

##create .xlsx-file##
now = datetime.now().strftime('%d-%m-%y-%H-%M-%S')
workbook = xlsxwriter.Workbook(directory+now+'.xlsx')

##iterate over .csv-files##
for filename in os.listdir(directory):
    if filename.endswith(".csv"):
        csvfile = os.path.join(directory, filename)
        ##add worksheet named as .csv-file##
        worksheet = workbook.add_worksheet('{csvfile}'.format(csvfile=filename))
        ##open and process .csv-file##
        with open(csvfile, 'rt') as f:
            reader = csv.reader(f)
            for r,row in enumerate(reader):
                for i in range(59):
                    r=r+i
                    if r>=(i+1):
                        break
                    for c, col in enumerate(row):
                        c=c+1
                        worksheet.write(r, c, col)
##don't forget to close your workbook afterwards##
workbook.close()

答案 1 :(得分:0)

现在,我的代码正在成功运行,但是没有进入我的if循环,并且直接结束而不保存我的文件Pl。忽略缩进

B