将csv文件或txt文件转为表格excel文件,使用Python其实是比较简单的,只需要编写1个简单的函数即可。详细介绍如下:
一、前提条件
必须是标准的csv文件格式,即逗号分隔值文件格式csv文件。
如果是txt文件,文件中每行内的值也必须是以英文逗号分隔开的。
如下所示的:
我们看到不论是csv文件还是txt文件,每行内的值都必须是英文状态下的逗号进行分隔的。
如果不是英文逗号,而是中文逗号分隔值呢,下面编写的代码会导致无法准确转为表格文件的。类似地,如果tab键分隔值、其它符号分隔值,都是无法准确转为表格文件的。
所以,要使用下面的代码转换csv文件或txt文件,务必确保文件中的分隔符是英文状态下的逗号。
二、具体转换的代码
import openpyxl #导入表格模块
import csv #导入csv模块
#以下定义一个函数,该函数的功能是转为csv文件为表格文件。
def csv_to_excel(csv_file,excel_file): #2个参数分别是文件完整路径,这里csv_file可以是后缀为.txt的文件
csv_data = []
with open(csv_file) as f: #打开csv文件或txt文件
for row in csv.reader(f): #读取文件中的每行
csv_data.append(row) #将读取的每行内容保存为列表的每个元素
wb = openpyxl.Workbook() #新建工作薄文件
sheet = wb.active #获取当前的工作表
for row in csv_data: #读取每个元素,即csv的每行
sheet.append(row) #在工作表中添加每行
wb.save(excel_file) #保存生成的工作簿文件
#下面是调用定义的函数,执行具体的转换任务。
csv_to_excel('e:/1.txt','e:/new.xlsx') #将e盘下的1.txt文件,转换为new.xlsx表格
print('完成') #执行完成后,提示执行结束!
三、在python的IDLE中代码如下图所示
在上面代码处于当前状态时,按下f5或者点击菜单栏中的run下面的按钮,即可执行上述的代码。
同样,修改倒数第2行中的2个参数,即可转换本地csv文件或txt文件。
四、有没有必要将csv文件转为excel文件
如果csv文件数据量超过10万行,不建议转为excel,因为在excel中的行数太大时,一是表格反应速度会变慢,有时让人无法接受,二是在进行数据处理时容易出错。对于大数据量的情况,使用python直接读取csv文件并进行分析,会更加方便简单高效。
如果csv文件数据量较少,可以根据需要,决定是否转为excel文件。