趋近智
当你的 Python 脚本需要从文件读取数据或将结果写回时,它首先需要知道文件在计算机存储(例如硬盘或固态硬盘)上的位置。就像你需要一个地址来找到特定的房屋一样,你的程序需要一个文件路径来找到特定的文件。这个路径本质上是文件在系统文件夹(也称为目录)层级结构中的地址。
可以将计算机的文件系统想象成一个大型文件柜。主文件柜是根目录,抽屉是主文件夹或驱动器,抽屉内的文件夹是子文件夹,而最终抽屉内的文档就是文件。文件路径会精确地告诉 Python 要访问哪个抽屉、该抽屉内的哪个文件夹以及哪个文档(文件)。
常见的文件路径包含:
.txt、.csv、.py)。具体格式,特别是分隔符,取决于你的操作系统。
文件路径的表示方式因你使用的 Windows、macOS 或 Linux 系统而略有不同。
Windows: 路径通常以驱动器盘符(如 C: 或 D:)开头,后跟冒号。目录使用反斜杠 (\) 分隔。
C:\Users\YourUsername\Documents\report.txt/),这使得编写跨平台代码更简单。macOS 和 Linux(类 Unix 系统): 这些系统使用单一根目录,由正斜杠 (/) 表示。目录总是使用正斜杠 (/) 分隔。没有像 Windows 那样的驱动器盘符。
/Users/yourusername/Documents/report.txt/home/yourusername/documents/report.txt理解这些差异很重要,特别是如果你打算与可能使用不同操作系统的人分享你的脚本。
绝对路径提供文件或目录从文件系统最顶层开始的完整位置。
C:\...)。/...) 开头。示例:
C:\Program Files\Python310\python.exe/Applications/Calculator.app/usr/bin/python3绝对路径是明确的;无论你的脚本当前在哪里运行,它们都指向一个特定位置。然而,将绝对路径硬编码到你的脚本中会降低其可移植性。如果你将项目移动到不同的位置或与他人分享,该绝对路径可能就不再正确了。
相对路径指定文件或目录相对于当前工作目录(CWD)的位置。CWD 是你的 Python 脚本执行时所在的目录。
可以把它想象成从你当前所在位置给出方向:“进入 data 文件夹并找到 results.csv”或“向上一个级别,然后进入 config 文件夹”。
相对路径中使用了特殊符号:
.(一个点):表示当前目录。..(两个点):表示父目录(向上一个级别)。示例(假设你的脚本在 macOS/Linux 上从 /Users/alice/project/ 运行,或在 Windows 上从 C:\Users\Alice\project\ 运行):
data.txt:在 CWD(project 文件夹)中寻找 data.txt。input/config.json:在 CWD 中寻找一个名为 input 的文件夹,然后在该 input 文件夹中寻找 config.json。完整路径将是 /Users/alice/project/input/config.json。../scripts/utility.py:寻找 CWD 的父目录(即 /Users/alice/ 或 C:\Users\Alice\),然后在该父目录中寻找一个 scripts 文件夹,最后在 scripts 中寻找 utility.py。完整路径将是 /Users/alice/scripts/utility.py。此示例文件结构说明了从
project目录(即当前工作目录 CWD)出发的相对路径和绝对路径。
相对路径使你的项目更加独立和可移植。如果你在项目目录中组织你的数据文件,你可以使用相对路径,即使整个项目文件夹被移动到其他位置,脚本仍然能正常运行。
You可以使用 Python 内置的 os 模块获取正在运行脚本的 CWD:
import os
current_directory = os.getcwd()
print(f"当前工作目录是: {current_directory}")
运行这段代码会显示你的终端或 IDE 视为执行脚本起始点的目录的绝对路径。
对于初学者和大多数项目工作,通常建议使用相对路径。使用子目录组织你的项目,用于存放数据、脚本等,并使用 data/my_file.txt 或 ../config/settings.ini 等相对路径。这使你的代码更易于分享并在不同计算机上运行。
主要在你需要访问项目结构之外的固定、已知位置的文件时使用绝对路径,例如系统配置文件或跨项目共享的资源。请注意,这可能会使你的脚本与特定的机器设置绑定。
Python 的文件处理函数(如接下来会看到的 open())和 os.path 以及更新的 pathlib 等标准库模块提供了处理两种类型路径的工具,并帮助管理操作系统之间的差异。目前,重要的一点是理解你的计算机以及 Python 如何定位你想要处理的文件的原理。
这部分内容有帮助吗?
os - Miscellaneous operating system interfaces, Python Software Foundation, 2024 (Python Software Foundation) - 对于理解Python中基本的操作系统交互和路径操作功能至关重要。pathlib - Object-oriented filesystem paths, Python Software Foundation, 2024 (Python Software Foundation) - 介绍了一种现代、面向对象的文件系统路径处理方法,提供了更好的可读性和鲁棒性。© 2026 ApX Machine LearningAI伦理与透明度•