Python:将多个文件从xls转换为csv
我试图用Python2.7编写一个脚本,将当前目录中的所有.xls和.xlsx文件转换为.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
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)