当前位置: 代码网 > it编程>前端脚本>Python > 一文讲清Python中文件路径的基本概念与操作方法

一文讲清Python中文件路径的基本概念与操作方法

2026年04月02日 Python 我要评论
一、文件路径概述1. 什么是文件路径文件路径是用于定位文件或文件夹在计算机中存储位置的“地址”,就像现实生活中的“家庭住址”一样,通过它操作系统才能找到

一、文件路径概述

1. 什么是文件路径

文件路径是用于定位文件或文件夹在计算机中存储位置的“地址”,就像现实生活中的“家庭住址”一样,通过它操作系统才能找到对应的文件。

2. 为什么要学习文件路径

在 python 中,无论是读取文件(如 open('data.txt'))、保存数据,还是导入自定义模块,都需要通过文件路径来定位目标。路径写错会直接导致 filenotfounderror(文件找不到错误),因此掌握路径是 python 编程的基础技能。

二、路径的分类:绝对路径 vs 相对路径

1. 绝对路径

定义:从文件系统的“根目录”开始,完整描述文件位置的路径。无论当前在哪个目录下,绝对路径都能唯一确定文件位置。

不同系统的绝对路径格式:

windows 系统:以盘符开头(如 c:d:),用反斜杠 \ 分隔目录(python 中也可以用正斜杠 / 避免转义问题)。

示例:c:\users\张三\desktop\project\data.txtc:/users/张三/desktop/project/data.txt

linux / macos 系统:以正斜杠 /(根目录)开头,用正斜杠 / 分隔目录。

示例:/users/张三/desktop/project/data.txt

2. 相对路径

定义:相对于当前工作目录(current working directory, cwd)的路径。简单说,就是“以当前位置为起点,去找目标文件”。

相对路径的核心符号:

符号含义说明
.当前目录可省略(如 ./data.txt 等价于 data.txt)
..上一级目录表示回到当前目录的父目录
/路径分隔符windows 用 \ 或 /,linux/macos 用 /

常见相对路径写法示例:

假设当前工作目录是 project,目录结构如下:

c:\users\张三\desktop\
    └── project/          # 当前工作目录(cwd)
        ├── code/
        │   └── script.py
        ├── data.txt      # 目标文件1
        └── docs/
            └── note.txt  # 目标文件2
    └── photo.jpg         # 目标文件3(上上级目录)

场景相对路径写法说明
引用当前目录的 data.txtdata.txt 或 ./data.txt直接写文件名(或加 ./)
引用 code 目录下的 script.pycode/script.py进入子目录 code,再找文件
引用上一级目录的 photo.jpg../photo.jpg先回到 desktop(上一级),再找文件
引用上上级目录(假设cwd是 code)../../photo.jpg从 code → project → desktop,再找文件

如下示例,data与01脚本文件(文件名尽量不要数字开头)同级别,在01脚本文件中引用同级data中的1.txt方式如下:

三、python 中处理文件路径的常用方法

使用pycharm软件进行路径查看:

右击文件点击copypath

点击后可查看文件的绝对路径和 项目根相对路径(相对于项目文件夹)

python 提供了两种主流方式处理路径:传统的 os.path 模块现代的 pathlib 模块(推荐新手优先学 pathlib,更简洁直观)。

1. 方法一:os.path模块(传统方法)

os 是 python 内置的系统交互模块,os.path 专门用于处理路径。

常用函数:

函数功能说明示例
os.getcwd()获取当前工作目录的绝对路径print(os.getcwd()) → c:\project
os.path.join()智能拼接路径(自动适配系统分隔符)os.path.join('code', 'script.py') → code/script.py
os.path.abspath()将相对路径转换为绝对路径os.path.abspath('data.txt') → c:\project\data.txt
os.path.exists()判断路径是否存在(文件或文件夹都可)os.path.exists('data.txt') → true/false
os.path.isfile()判断是否为文件os.path.isfile('data.txt') → true
os.path.isdir()判断是否为文件夹os.path.isdir('code') → true

代码示例(带详细注释):

import os  # 导入 os 模块

# 1. 获取当前工作目录
current_dir = os.getcwd()
print("当前工作目录:", current_dir)  # 输出类似: c:\users\张三\desktop\project

# 2. 拼接路径(推荐用这个,避免手动写分隔符出错)
# 比如要拼接 "code" 和 "script.py"
script_path = os.path.join(current_dir, "code", "script.py")
print("拼接后的路径:", script_path)  # 输出: c:\users\张三\desktop\project\code\script.py

# 3. 判断文件是否存在
if os.path.exists(script_path):
    print("文件存在!")
else:
    print("文件不存在!")

2. 方法二:pathlib模块(现代推荐,面向对象)(可学完面向对象后再进行回顾)

pathlib 是 python 3.4+ 新增的模块,用面向对象的方式处理路径,代码更优雅,是目前官方推荐的方式。

核心类:path

方法/属性功能说明示例
path.cwd()获取当前工作目录(等价于 os.getcwd())path.cwd() → c:\project
path.joinpath()拼接路径(也可以用 / 运算符)path('code') / 'script.py' → code/script.py
path.resolve()转换为绝对路径(等价于 os.path.abspath())path('data.txt').resolve() → c:\project\data.txt
path.exists()判断路径是否存在path('data.txt').exists() → true
path.is_file()判断是否为文件path('data.txt').is_file() → true
path.is_dir()判断是否为文件夹path('code').is_dir() → true
path.parent获取上一级目录(等价于 ..)path('code/script.py').parent → code

代码示例(带详细注释):

from pathlib import path  # 从 pathlib 导入 path 类

# 1. 获取当前工作目录
current_dir = path.cwd()
print("当前工作目录:", current_dir)  # 输出类似: c:\users\张三\desktop\project

# 2. 拼接路径(推荐用 / 运算符,超简洁!)
# 方式一:用 joinpath()
script_path = current_dir.joinpath("code", "script.py")
# 方式二:用 / (更推荐,像写路径一样自然)
script_path = current_dir / "code" / "script.py"
print("拼接后的路径:", script_path)  # 输出: c:\users\张三\desktop\project\code\script.py

# 3. 判断文件是否存在
if script_path.exists():
    print("文件存在!")
else:
    print("文件不存在!")

# 4. 获取上一级目录
parent_dir = current_dir.parent  # 等价于 ../
print("上一级目录:", parent_dir)  # 输出: c:\users\张三\desktop

四、新手常见问题与注意事项

1. 路径分隔符的“坑”

windows 默认用反斜杠 \,但在 python 字符串中 \转义字符(比如 \n 是换行),直接写会报错!

错误写法:open("c:\users\data.txt")\u 会被当成转义符)

正确写法:

  • 用正斜杠 /open("c:/users/data.txt")(推荐,跨系统兼容)
  • 用双反斜杠 \\open("c:\\users\\data.txt")
  • 用原始字符串 r""open(r"c:\users\data.txt")(加 r 表示不转义)

2. 相对路径的“基准”:当前工作目录(cwd)

相对路径是相对于“当前工作目录”,而不是“脚本所在目录”!

比如你在 desktop 目录下运行 project/code/script.py,此时 cwd 是 desktop,不是 code

如何获取“脚本所在目录”的绝对路径?

如果希望路径相对于脚本本身(无论在哪里运行都能找到文件),可以用以下方法:

1.用 pathlib(推荐)

from pathlib import path
# 获取当前脚本的绝对路径,再取父目录(即脚本所在文件夹)
script_dir = path(__file__).resolve().parent
print("脚本所在目录:", script_dir)

(注:__file__ 是 python 内置变量,表示当前脚本的文件名)

2.用 os.path

import os
script_dir = os.path.dirname(os.path.abspath(__file__))
print("脚本所在目录:", script_dir)

3. 文件名和路径中不要有中文?

不是不能有,但建议新手尽量用英文命名文件和文件夹,避免部分系统或旧版本 python 出现编码问题。

五、总结

  • 绝对路径:完整地址,从根目录开始,适合固定位置的文件;
  • 相对路径:以当前目录为起点,用 .(当前)、..(上一级),适合项目内文件;
  • python 处理路径:优先用 pathlib(面向对象,简洁),也可以用 os.path(传统);
  • 避坑要点:注意分隔符转义、明确当前工作目录、尽量用英文命名。

到此这篇关于一文讲清python中文件路径的基本概念与操作方法的文章就介绍到这了,更多相关python文件路径操作内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com