包和项目管理工具 uv
一个用 Rust 编写的极速 Python 包和项目管理工具。
🚀 国内镜像加速:让 uv 下载速度飞起来
设置环境变量
名称:UV_DEFAULT_INDEX
值:https://pypi.tuna.tsinghua.edu.cn/simple
针对单个项目:uv 会读取项目目录下的 pyproject.toml 中的配置。你可以添加:
1 | # 在 pyproject.toml 中添加 |
安装特定版本的 Python
uv python install 3.12
安装最新版本的 Python
uv python install
Openpyxl
openpyxl 是用于读取和写入 Excel 2010 xlsx / xlsm / xltx / xltm 文件的 Python 库。
简单示例
1 | from openpyxl import Workbook |
结果会显示 2 行。第一行为 A1,第二行分别为 1、2、3
创建工作簿
1 | # 默认会新建一个 Sheet 页 |
创建工作表时会自动为其命名。这些工作表按顺序编号(Sheet, Sheet1, Sheet2, …)。您可以随时使用 Worksheet.title 属性更改此名称。
Playing with data
1 | for x in range(1,101): |
警告:由于此功能,滚动浏览单元格而非直接访问它们,会将所有单元格都加载到内存中,即便您未为其赋值。
访问单个单元格
访问多个单元格
行或列的范围也可以类似地获取:
1 | colC = ws['C'] |
您还可以使用 Worksheet.iter_rows() 方法:
1 | for row in ws.iter_rows(min_row=1, max_col=3, max_row=2): |
同样,Worksheet.iter_cols() 方法将返回列:
1 | for col in ws.iter_cols(min_row=1, max_col=3, max_row=2): |
注意:出于性能原因,Worksheet.iter_cols() 方法在只读模式下不可用。
如果您需要遍历文件中的所有行或列,可以改用 Worksheet.rows 属性:
1 | ws = wb.active |
或者使用 Worksheet.columns 属性:
1 | tuple(ws.columns) |
出于性能原因,在只读模式下无法使用 Worksheet.columns 属性。
Values only
如果您只想获取工作表中的值,可以使用 Worksheet.values 属性。这会遍历工作表中的所有行,但仅返回单元格的值:
1 | for row in ws.values: |
Both Worksheet.iter_rows() and Worksheet.iter_cols() can take the values_only parameter to return just the cell’s value:
1 | for row in ws.iter_rows(min_row=1, max_col=3, max_row=2, values_only=True): |
Data storage
一旦我们拿到 cell 单元格,可以直接赋值。
d.value = 3.14
Saving to a file
以流的形式保存
如果您希望将文件保存到流中,例如在使用 Pyramid、Flask 或 Django 等网络应用程序时,您可以简单地提供一个 NamedTemporaryFile():
1 | from tempfile import NamedTemporaryFile |
Loading from a file
You can use the openpyxl.load_workbook() to open an existing workbook:
1 | from openpyxl import load_workbook |
参考
- openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files — openpyxl documentation
- Openpyxl 教程|极客教程
Pandas
matplotlib
1 | import matplotlib.pyplot as plt |