Python 文件类型完全手册
本文收录了Python生态中所有已知的文件类型,从核心代码到边缘文件,一网打尽!
📂 核心代码文件
| 文件类型 | 官方名称 | 用途说明 | 出现场景 | 能否编辑 |
|---|
.py | Python源代码 | 标准的Python脚本文件,包含可读的Python代码 | 日常开发、项目核心 | ✅ 可编辑 |
.py3 | Python 3源代码 | 明确标识使用Python 3的源文件 | 兼容性项目 | ✅ 可编辑 |
.py2 | Python 2源代码 | 明确标识使用Python 2的源文件 | 遗留项目维护 | ✅ 可编辑 |
.pyw | Python窗口脚本 | Windows上运行GUI程序时使用,无控制台窗口 | GUI应用、后台服务 | ✅ 可编辑 |
.pyi | Python类型存根 | 类型提示文件,为代码提供静态类型信息 | 库开发、类型检查 | ✅ 可编辑 |
.pyx | Cython源代码 | Cython语言源文件,可编译为C扩展 | 性能优化、包装C库 | ✅ 可编辑 |
.pxd | Cython定义文件 | Cython的声明文件,类似C的头文件 | Cython模块开发 | ✅ 可编辑 |
.pxi | Cython包含文件 | Cython的包含文件,用于代码复用 | Cython项目 | ✅ 可编辑 |
⚙️ 编译与字节码文件
| 文件类型 | 官方名称 | 用途说明 | 位置 | 能否编辑 |
|---|
.pyc | Python字节码 | Python编译后的字节码,加速启动 | __pycache__目录 | ❌ 不可编辑 |
.pyo | 优化字节码 | Python 3.5前的优化字节码(现合并到.pyc) | __pycache__目录 | ❌ 不可编辑 |
.pyd | Python动态库 | Windows平台的C扩展模块 | 扩展模块目录 | ❌ 二进制 |
.so | 共享对象 | Linux/Mac平台的C扩展模块 | 扩展模块目录 | ❌ 二进制 |
.dll | 动态链接库 | Windows动态链接库(Python调用的) | 系统目录、扩展目录 | ❌ 二进制 |
.dylib | 动态库 | macOS动态库 | 扩展目录 | ❌ 二进制 |
.abi3.so | ABI3扩展 | 稳定ABI的C扩展 | 兼容多版本Python | ❌ 二进制 |
📓 笔记本与交互式文件
| 文件类型 | 官方名称 | 用途说明 | 主要工具 |
|---|
.ipynb | Jupyter笔记本 | 交互式文档,包含代码、文本、图表、公式 | Jupyter、VSCode |
.nblite | Jupyter Lite笔记本 | 轻量级笔记本格式 | Jupyter Lite |
.jupyter | Jupyter配置 | Jupyter配置文件 | Jupyter Notebook |
.ipynb_checkpoints | 自动备份 | Jupyter自动保存的备份文件 | Jupyter自动生成 |
📦 打包与分发文件
| 文件类型 | 官方名称 | 用途说明 | 所属工具 |
|---|
.whl | Wheel包 | Python现代打包格式,用于分发安装 | pip、setuptools |
.egg | Egg包 | 旧版打包格式(逐渐淘汰) | setuptools |
.egg-info | Egg信息 | 包元数据信息目录 | setuptools |
.dist-info | 分发信息 | Wheel包的元数据目录 | pip、wheel |
.tar.gz | 源码包 | Python源码分发格式 | 源码安装 |
.zip | ZIP压缩包 | Python源码包(Windows常见) | 源码安装 |
.exe | 安装程序 | Windows安装包 | py2exe、PyInstaller |
.msi | Windows安装包 | Microsoft安装包 | Python官方安装包 |
.deb | Debian包 | Debian/Ubuntu安装包 | 系统包管理器 |
.rpm | RPM包 | RedHat/CentOS安装包 | 系统包管理器 |
🚀 可执行与打包应用
| 文件类型 | 官方名称 | 用途说明 | 生成工具 |
|---|
.exe | Windows可执行 | 打包后的独立可执行文件 | PyInstaller、cx_Freeze |
.app | macOS应用 | macOS应用程序包 | PyInstaller、py2app |
.dmg | macOS安装包 | macOS磁盘映像 | 分发工具 |
.bin | 二进制文件 | Linux可执行文件 | PyInstaller |
.pyz | Python压缩应用 | 可执行的Python归档 | zipapp |
.pex | PEX可执行 | 自包含Python可执行环境 | PEX工具 |
📋 配置与项目文件
| 文件类型 | 官方名称 | 用途说明 | 所属工具/标准 |
|---|
requirements.txt | 依赖列表 | 列出项目所需的所有Python包 | pip |
requirements-dev.txt | 开发依赖 | 开发环境需要的额外依赖 | pip |
pyproject.toml | 项目配置 | 现代Python项目的配置标准 | PEP 518/621 |
setup.py | 安装脚本 | 传统Python包的安装配置 | setuptools |
setup.cfg | 安装配置 | setuptools的声明式配置 | setuptools |
MANIFEST.in | 清单文件 | 指定打包时包含的非Python文件 | setuptools |
Pipfile | Pipenv依赖 | Pipenv工具的依赖管理 | Pipenv |
Pipfile.lock | Pipenv锁文件 | 锁定精确版本 | Pipenv |
poetry.lock | Poetry锁文件 | 锁定精确版本 | Poetry |
pyvenv.cfg | 虚拟环境配置 | 虚拟环境配置文件 | venv |
.pth | 路径配置 | 添加自定义路径到Python搜索路径 | site模块 |
.env | 环境变量 | 存储环境变量 | python-dotenv |
🔧 编辑器与IDE文件
| 文件类型 | 官方名称 | 用途说明 | 所属工具 |
|---|
.vscode | VSCode配置 | VSCode编辑器配置目录 | VSCode |
.idea | IntelliJ配置 | PyCharm配置目录 | PyCharm |
.project | Eclipse项目 | Eclipse项目文件 | PyDev |
.pydevproject | PyDev配置 | PyDev插件配置 | PyDev |
.sublime-project | Sublime项目 | Sublime Text项目文件 | Sublime Text |
.sublime-workspace | Sublime工作区 | Sublime Text工作区 | Sublime Text |
🔐 数据与序列化文件
| 文件类型 | 官方名称 | 用途说明 | 主要库 |
|---|
.pkl / .pickle | Pickle序列化 | Python对象序列化 | pickle |
.joblib | Joblib序列化 | 大数据集和模型保存 | joblib |
.npy | NumPy数组 | NumPy专用数组格式 | numpy |
.npz | NumPy压缩数组 | 多数组压缩存储 | numpy |
.h5 / .hdf5 | HDF5数据 | 大规模科学数据存储 | h5py |
.hdf5 | HDF5格式 | 同上 | h5py |
.mat | MATLAB数据 | MATLAB格式数据 | scipy.io |
.nc | NetCDF数据 | 网络通用数据格式 | netCDF4 |
.json | JSON数据 | 轻量级数据交换格式 | json |
.yaml / .yml | YAML数据 | 可读的数据序列化 | pyyaml |
.xml | XML数据 | 可扩展标记语言 | xml.etree |
.csv | 逗号分隔值 | 表格数据 | csv、pandas |
.tsv | 制表符分隔值 | 表格数据 | csv、pandas |
.xls / .xlsx | Excel文件 | Excel表格数据 | pandas、openpyxl |
.parquet | Parquet格式 | 列式存储格式 | pandas、pyarrow |
.feather | Feather格式 | 跨语言数据格式 | pandas、feather |
.db | SQLite数据库 | SQLite数据库文件 | sqlite3 |
.sqlite | SQLite数据库 | SQLite数据库文件 | sqlite3 |
.db3 | SQLite 3 | SQLite 3数据库 | sqlite3 |
📊 日志与调试文件
| 文件类型 | 官方名称 | 用途说明 | 生成工具 |
|---|
.log | 日志文件 | 程序运行日志 | logging模块 |
.prof | 性能分析 | Python性能分析数据 | cProfile |
.pstats | 分析统计 | 性能分析统计 | pstats |
.trace | 跟踪文件 | 代码执行跟踪 | trace模块 |
.coverage | 覆盖率数据 | 测试覆盖率数据 | coverage.py |
.cover | 覆盖率报告 | 测试覆盖率报告 | coverage.py |
🔬 科学计算专用
| 文件类型 | 官方名称 | 用途说明 | 主要库 |
|---|
.ipynb | Jupyter笔记本 | 科研计算、数据分析 | Jupyter |
.pyx | Cython源文件 | 数值计算优化 | Cython |
.pxd | Cython声明 | 同上 | Cython |
.f / .f90 | Fortran源文件 | 科学计算(通过f2py调用) | NumPy |
.c | C源文件 | 扩展编写、性能优化 | Python/C API |
.cpp | C++源文件 | 扩展编写 | pybind11、Boost.Python |
.i | SWIG接口 | SWIG接口定义 | SWIG |
📚 文档与教学文件
| 文件类型 | 官方名称 | 用途说明 | 生成工具 |
|---|
.rst | reStructuredText | Python官方文档格式 | Sphinx |
.md | Markdown | 项目文档、README | 通用 |
.ipynb | Jupyter笔记本 | 教学文档、教程 | Jupyter |
.tex | LaTeX | 学术论文、技术文档 | 论文写作 |
.pdf | PDF文档 | 最终文档格式 | Sphinx、LaTeX |
.html | HTML文档 | 在线文档 | Sphinx、pydoc |
.epub | 电子书 | 电子书格式 | Sphinx |
.doctree | Sphinx文档树 | Sphinx中间文件 | Sphinx |
📁 特殊目录与元文件
| 文件/目录名 | 类型 | 用途说明 |
|---|
__pycache__ | 目录 | Python字节码缓存目录 |
__init__.py | 文件 | 标识目录为Python包 |
__main__.py | 文件 | 让包可以作为脚本运行 |
.git | 目录 | Git版本控制目录 |
.github | 目录 | GitHub配置目录 |
.gitignore | 文件 | Git忽略文件配置 |
.dockerignore | 文件 | Docker忽略文件 |
Dockerfile | 文件 | Docker镜像构建文件 |
.python-version | 文件 | pyenv使用的Python版本 |
.pylintrc | 文件 | Pylint代码检查配置 |
.flake8 | 文件 | Flake8代码检查配置 |
.pre-commit-config.yaml | 文件 | pre-commit钩子配置 |
.editorconfig | 文件 | 编辑器统一配置 |
.vscode | 目录 | VSCode项目配置 |
.idea | 目录 | PyCharm项目配置 |
site-packages | 目录 | 第三方包安装目录 |
dist-packages | 目录 | Debian系统包目录 |
build | 目录 | 编译临时目录 |
dist | 目录 | 分发文件目录 |
*.egg-info | 目录 | Egg包元数据 |
*.dist-info | 目录 | Wheel包元数据 |
🌐 网络与Web开发
| 文件类型 | 官方名称 | 用途说明 | 框架/工具 |
|---|
.wsgi | WSGI脚本 | Web服务器网关接口 | Django、Flask |
.asgi | ASGI脚本 | 异步网关接口 | FastAPI、Django Channels |
.pycgi | CGI脚本 | 通用网关接口 | CGI服务器 |
.fcgi | FastCGI | 快速CGI | Nginx、Apache |
.cookiecutter | 项目模板 | 项目模板配置 | cookiecutter |
📱 移动与嵌入式
| 文件类型 | 官方名称 | 用途说明 | 平台/工具 |
|---|
.pyo | 优化字节码 | 嵌入式系统(旧版) | 嵌入式Python |
.mpy | MicroPython字节码 | MicroPython编译文件 | MicroPython |
.py | MicroPython脚本 | 嵌入式Python代码 | MicroPython |
.py | Kivy应用 | 移动应用开发 | Kivy |
.kv | Kivy语言 | Kivy界面描述语言 | Kivy |
🧪 测试相关
| 文件类型 | 官方名称 | 用途说明 | 测试框架 |
|---|
test_*.py | 测试文件 | 单元测试文件 | pytest、unittest |
*_test.py | 测试文件 | 单元测试文件 | pytest |
conftest.py | pytest配置 | pytest插件和钩子 | pytest |
pytest.ini | pytest配置 | pytest配置文件 | pytest |
.pytest_cache | 缓存目录 | pytest缓存 | pytest |
tox.ini | tox配置 | 多环境测试配置 | tox |
tox.ini | tox配置 | 自动化测试配置 | tox |
📦 其他特殊文件
| 文件类型 | 官方名称 | 用途说明 |
|---|
.bz2 | Bzip2压缩 | Python源码压缩包 |
.xz | XZ压缩 | Python源码压缩包 |
.lzma | LZMA压缩 | Python源码压缩包 |
.whl.metadata | Wheel元数据 | Wheel包的元数据信息 |
.py.typed | 类型标记 | 标记包包含类型信息 |
.code-workspace | VSCode工作区 | VSCode多根工作区配置 |
.cursorrules | Cursor规则 | Cursor编辑器的AI规则文件 |
📝 总结
Python生态中总共有超过100种相关文件类型!但作为日常开发者,你真正需要掌握的只有:
✅ 核心必知(10种)
.py、.ipynb、requirements.txt、__init__.py、.pyc、.pyd/.so、.whl、.env、.gitignore、README.md
🔍 进阶了解(10种)
.pyi、.pyx、.pkl、.yaml、.json、setup.py、pyproject.toml、Dockerfile、.pth、.log
🌟 剩下的都是"遇见了再查"
其他80多种文件类型,大多是在特定场景(如科学计算、嵌入式开发、打包发布等)才会遇到,完全不需要死记硬背。
记住:Python的文件类型反映了其生态的丰富性,但入门只需要关注那最核心的几种就够了!