python将excel转换为csv的代码方法总结
python:如何将excel文件转化成CSV格式
importpandasaspd
data=pd.read_excel('123.xls','Sheet1',index_col=0)
data.to_csv('data.csv',encoding='utf-8')
将Excel文件转为csv文件的python脚本
#!/usr/bin/envpython
__author__="lrtao2010"
'''
Excel文件转csv文件脚本
需要将该脚本直接放到要转换的Excel文件同级目录下
支持xlsx和xls格式
在同级目录下生成名为excel_to_csv.csv的文件,采用UTF-8编码
'''
importxlrd
importcsv
importos
#生成的csv文件名
csv_file_name='excel_to_csv.csv'
defget_excel_list():
#获取Excel文件列表
excel_file_list=[]
file_list=os.listdir(os.getcwd())
forfile_nameinfile_list:
iffile_name.endswith('xlsx')orfile_name.endswith('xls'):
excel_file_list.append(file_name)
returnexcel_file_list
defget_excel_header(excel_name_for_header):
#获取表头,并将表头全部变为小写
workbook=xlrd.open_workbook(excel_name_for_header)
table=workbook.sheet_by_index(0)
#row_value=table.row_values(0)
row_value=[i.lower()foriintable.row_values(0)]
returnrow_value
defread_excel(excel_name):
#读取Excel文件每一行内容到一个列表中
workbook=xlrd.open_workbook(excel_name)
table=workbook.sheet_by_index(0)#读取第一个sheet
nrows=table.nrows
ncols=table.ncols
#跳过表头,从第一行数据开始读
forrows_readinrange(1,nrows):
#每行的所有单元格内容组成一个列表
row_value=[]
forcols_readinrange(ncols):
#获取单元格数据类型
ctype=table.cell(rows_read,cols_read).ctype
#获取单元格数据
nu_str=table.cell(rows_read,cols_read).value
#判断返回类型
#0empty,1string,2number(都是浮点),3date,4boolean,5error
#是2(浮点数)的要改为int
ifctype==2:
nu_str=int(nu_str)
row_value.append(nu_str)
yieldrow_value
defxlsx_to_csv(csv_file_name,row_value):
#生成csv文件
withopen(csv_file_name,'a',encoding='utf-8',newline='')asf:#newline=''不加会多空行
write=csv.writer(f)
write.writerow(row_value)
if__name__=='__main__':
#获取Excel列表
excel_list=get_excel_list()
#获取Excel表头并生成csv文件标题
xlsx_to_csv(csv_file_name,get_excel_header(excel_list[0]))
#生成csv数据内容
forexcel_nameinexcel_list:
forrow_valueinread_excel(excel_name):
xlsx_to_csv(csv_file_name,row_value)
print('Excel文件转csv文件结束')
以上就是2种实例方法,感谢大家的阅读和对毛票票的支持。