Excel、CSV表格文件读写-python
Excel文件读写
使用xlrd读文件(只支持.xls格式)
- 安装xlrd库
pip install xlrd
- xlrd使用示例
# 载入xlrd库
import xlrd
# 打开example.xls文件
df = xlrd.open_workbook('example.xls')
# 获取文件中所有sheet表格的名字
sheet_names=df.sheet_names()
# 指定要获取数据sheet表
table = df.sheets()[0] #指定第一个sheet表,table是xlrd的表格的对象类型
table1 = df.sheet_by_index(0) # 指定第一个sheet表
table2 = df.sheet_by_name('表1') # 指定名为 表1 的sheet表
# 获取行数和列数
row = table.nrows
col = table.ncols
# 获取整行整列的值
row_datas=table.row_values(0) #获取第一行的所有数据
col_datas = table.col_values(0) # 获取第一列的所有数据
# 获取单元格的值
data1 = table.row(0)[1].value # 获取第1行第2列单元格的值
data2 = table.col(1)[2].value #获取第3行第2列单元格的值
data3 = table.cell(1,2).value # 获取第2行第3列单元格的值
使用xlwt写文件(只支持.xls格式)
1.安装xlwt库pip install xlwt
2.xlwt使用示例
#载入xlwt库
import xlwt
# 新建excel文件
df2 = xlwt.Workbook()
#新建名为sheet_name的工作表
table2=df2.add_sheet('sheet_name')
#向指定单元格写数据
table2.write(0,1,"python") #向第1行第2列单元格中写入 python 字符串
#保存文件
df2.save('data.xls') #文件保存在当前目录下,并命名为data
使用openpyxl读写文件(xlsx、xlsm、xltx和xltm)
- 安装openpyxl库
pip install openpyxl
- 使用openpyxl写文件示例
#载入openpyxl中的Workbook模块
from openpyxl import Workbook
#创建工作簿
workbook= Workbook()
# 选择默认的工作表
sheet = workbook.active
# 写入单元格数据
sheet['A1'] = 'Hello' #第1列第1行单元格写入 Hello
sheet['B1'] = 'World' #第2列第1行单元格写入 World
sheet['C2'] = '开心' #第3列第2行单元格写入 开心
# 保存工作簿
workbook.save(filename='example.xlsx')
- 使用openpyxl读文件示例
#载入openpyxl中的load_workbook模块
from openpyxl import load_workbook
# 加载工作簿
workbook = load_workbook('example.xlsx')
# 选择工作表
sheet = workbook['Sheet1']
# 读取单元格内容
cell_value = sheet['A1'].value
print(f"A1单元格的值是:{cell_value}")
# 读取整行数据
row_values = [cell.value for cell in sheet[1]]
print(f"第1行的值是:{row_values}")
column_values= [cell.value for cell in sheet['A']]
print(f"第1列的值是:{column_values}")
# 读取工作表第1列到第5列的数据
for row in sheet.iter_rows(min_row=1, max_col=5, values_only=True):
print(row)
csv文件读写
使用csv模块读写文件
import csv
# 写入CSV文件
rows = [['Name', 'Age', 'Country'],
['John', '25', 'USA'],
['Emily', '30', 'UK']]
with open('output.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerows(rows)
# 读取CSV文件
with open('output.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
print(row)
使用pandas读写文件
- 安装pandas库
pip install pandas
- 使用示例
import pandas as pd
# 写入CSV文件
df = pd.DataFrame({'Name': ['John', 'Emily'],
'Age': [25, 30],
'Country': ['USA', 'UK']})
df.to_csv('output.csv', index=False)
# 读取CSV文件
df = pd.read_csv('output.csv')
print(df)
使用numpy读写文件
- 安装numpy库
pip install numpy
- 使用示例
import numpy as np
# 写入CSV文件
data = np.array([['Name', 'Age', 'Country'],
['John', '25', 'USA'],
['Emily', '30', 'UK']])
np.savetxt('output.csv', data, delimiter=',', fmt='%s')
# 读取CSV文件
data = np.genfromtxt('output.csv', delimiter=',')
print(data)