概述
csv是最通用的文件格式,本质是文本文件,用记事本即可打开。同一行中每个字段间用逗号分隔,在csv中显示的是在不同单元格中,在记事本中显示的是一行中用逗号分隔。
xls是excel专用格式,是二进制文件,只有excel才能打开。
CSV操作
csv写入
1.写入列表(list)数据
使用 csv.writer 对象
delimiter 指定同一行每个字段的分隔字符。若不指定,默认以英文逗号(,)分隔,在csv文件中显示的是不同单元格,若以其他符号分隔,则显示在csv同一单元格中
import csv
with open(r'e:zarten.csv', 'w', newline='') as csvfile:
csv_writer = csv.writer(csvfile, delimiter=' ')
csv_writer.writerow(['a', 'b', 'c'])
csv_writer.writerow(['d', 'e', 'f'])
2.写入字典(dict)数据
使用 csv.DictWriter 对象
import csv
with open(r'e:zarten.csv', 'w', newline='') as csvfile:
fieldnames = ['name', 'age']
csv_writer = csv.DictWriter(csvfile, fieldnames= fieldnames, delimiter=' ')#csv中默认,分隔单元格,delimiter可以不指定
csv_writer.writeheader()
csv_writer.writerow({'name' : 'Zarten1', 'age' : 1})
csv_writer.writerow({'name' : 'Zarten2', 'age' : 2})
csv读取
1.读取普通csv
使用 csv.reader 对象
import csv
with open(r'e:zarten.csv', 'r', newline='') as csvfile:
csv_reader = csv.reader(csvfile, delimiter= ' ')
headers = next(csv_reader) #获取第一行,可能是头
print(headers)
for row in csv_reader:
print(row)
#输出结果:
# ['name', 'age']
# ['Zarten1', '1']
# ['Zarten2', '2']
2.读取字典(dict)csv
使用 csv.DictReader 对象
import csv
with open(r'e:zarten.csv', 'r', newline='') as csvfile:
csv_reader = csv.DictReader(csvfile, delimiter= ' ')
for row in csv_reader:
print(row['name'], row['age'])
excel操作
excel操作需要使用第三方库,这里推荐使用openpyxl
官方文档: Tutorial - openpyxl 2.5.12 documentation
安装
pip3 install openpyxl
excel写入
import openpyxl
file_path = r'e:zarten.xlsx'
wb = openpyxl.Workbook()
sheet = wb.active
sheet.title = 'Zarten_info'
headers = ['name', "age"]
sheet.cell(1, 1, value=headers[0])
sheet.cell(1, 2 ,value=headers[1])
rows1 = ['Zarten1', 1]
sheet.append(rows1)
rows2 = ['Zarten2', 2]
sheet.append(rows2)
excel读取
import openpyxl
file_path = r'e:zarten.xlsx'
wb = openpyxl.load_workbook(file_path)
sheet = wb['Zarten_info']
for row in sheet.rows:
row_info = [row[0].value, row[1].value]
print(row_info)
for cell in row:
print(cell.value)
原文 https://zhuanlan.zhihu.com/p/54705476