Python:将多个文件从xls转换为csv

Python:将多个文件从xls转换为csv,python,excel,csv,Python,Excel,Csv,我试图用Python2.7编写一个脚本,将当前目录中的所有.xls和.xlsx文件转换为.csv,并保留它们的原始文件名 在其他类似问题的帮助下(遗憾的是,我不确定我借用的代码应该归功于谁),以下是我迄今为止得到的: import xlrd import csv import os def csv_from_excel(xlfile): wb = xlrd.open_workbook(xlfile) sh = wb.sheet_by_index(0) your_c

我试图用Python2.7编写一个脚本,将当前目录中的所有.xls和.xlsx文件转换为.csv,并保留它们的原始文件名

在其他类似问题的帮助下(遗憾的是,我不确定我借用的代码应该归功于谁),以下是我迄今为止得到的:

import xlrd
import csv
import os

def csv_from_excel(xlfile):
     wb = xlrd.open_workbook(xlfile)
     sh = wb.sheet_by_index(0)
     your_csv_file = open(os.path.splitext(sxlfile)[0], 'wb')
     wr = csv.writer(your_csv_file, dialect='excel', quoting=csv.QUOTE_ALL)
     for rownum in xrange(sh.nrows):
         wr.writerow(sh.row_values(rownum))
     your_csv_file.close()

 for file in os.listdir(os.getcwd()):
      if file.lower().endswith(('.xls','.xlsx')):
         csv_from_excel(file)
我有两个问题:

1) 我不明白为什么程序在运行时只转换一个文件而不遍历当前目录中的所有文件

2) 我不知道如何通过转换保持原始文件名。即,输出文件与输入文件具有相同的名称


谢谢

一个可能的解决方案是使用
glob


一种可能的解决方案是使用
glob

excel_files = glob('*xls*')

 for excel in excel_files:
    out = excel.split('.')[0]+'.csv'
    df = pd.read_excel(excel, 'Sheet1')
    df.to_csv(out)