最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文講清Python中文件路徑的基本概念與操作方法

 更新時(shí)間:2026年04月02日 09:19:18   作者:卷心菜狗  
這篇文章主要為大家詳細(xì)介紹了Python中文件路徑的基本概念與操作方法,其中文件路徑主要分為絕對路徑(從根目錄開始)和相對路徑(相對于當(dāng)前工作目錄),感興趣的小伙伴可以了解下

一、文件路徑概述

1. 什么是文件路徑

文件路徑是用于定位文件或文件夾在計(jì)算機(jī)中存儲位置的“地址”,就像現(xiàn)實(shí)生活中的“家庭住址”一樣,通過它操作系統(tǒng)才能找到對應(yīng)的文件。

2. 為什么要學(xué)習(xí)文件路徑

在 Python 中,無論是讀取文件(如 open('data.txt'))、保存數(shù)據(jù),還是導(dǎo)入自定義模塊,都需要通過文件路徑來定位目標(biāo)。路徑寫錯(cuò)會直接導(dǎo)致 FileNotFoundError(文件找不到錯(cuò)誤),因此掌握路徑是 Python 編程的基礎(chǔ)技能。

二、路徑的分類:絕對路徑 vs 相對路徑

1. 絕對路徑

定義:從文件系統(tǒng)的“根目錄”開始,完整描述文件位置的路徑。無論當(dāng)前在哪個(gè)目錄下,絕對路徑都能唯一確定文件位置。

不同系統(tǒng)的絕對路徑格式:

Windows 系統(tǒng):以盤符開頭(如 C:、D:),用反斜杠 \ 分隔目錄(Python 中也可以用正斜杠 / 避免轉(zhuǎn)義問題)。

示例:C:\Users\張三\Desktop\project\data.txtC:/Users/張三/Desktop/project/data.txt

Linux / macOS 系統(tǒng):以正斜杠 /(根目錄)開頭,用正斜杠 / 分隔目錄。

示例:/Users/張三/Desktop/project/data.txt

2. 相對路徑

定義:相對于當(dāng)前工作目錄(Current Working Directory, CWD)的路徑。簡單說,就是“以當(dāng)前位置為起點(diǎn),去找目標(biāo)文件”。

相對路徑的核心符號:

符號含義說明
.當(dāng)前目錄可省略(如 ./data.txt 等價(jià)于 data.txt)
..上一級目錄表示回到當(dāng)前目錄的父目錄
/路徑分隔符Windows 用 \ 或 /,Linux/macOS 用 /

常見相對路徑寫法示例:

假設(shè)當(dāng)前工作目錄是 project,目錄結(jié)構(gòu)如下:

C:\Users\張三\Desktop\
    └── project/          # 當(dāng)前工作目錄(CWD)
        ├── code/
        │   └── script.py
        ├── data.txt      # 目標(biāo)文件1
        └── docs/
            └── note.txt  # 目標(biāo)文件2
    └── photo.jpg         # 目標(biāo)文件3(上上級目錄)

場景相對路徑寫法說明
引用當(dāng)前目錄的 data.txtdata.txt 或 ./data.txt直接寫文件名(或加 ./)
引用 code 目錄下的 script.pycode/script.py進(jìn)入子目錄 code,再找文件
引用上一級目錄的 photo.jpg../photo.jpg先回到 Desktop(上一級),再找文件
引用上上級目錄(假設(shè)CWD是 code)../../photo.jpg從 code → project → Desktop,再找文件

如下示例,data與01腳本文件(文件名盡量不要數(shù)字開頭)同級別,在01腳本文件中引用同級data中的1.txt方式如下:

三、Python 中處理文件路徑的常用方法

使用Pycharm軟件進(jìn)行路徑查看:

右擊文件點(diǎn)擊CopyPath

點(diǎn)擊后可查看文件的絕對路徑和 項(xiàng)目根相對路徑(相對于項(xiàng)目文件夾)

Python 提供了兩種主流方式處理路徑:傳統(tǒng)的 os.path 模塊現(xiàn)代的 pathlib 模塊(推薦新手優(yōu)先學(xué) pathlib,更簡潔直觀)。

1. 方法一:os.path模塊(傳統(tǒng)方法)

os 是 Python 內(nèi)置的系統(tǒng)交互模塊,os.path 專門用于處理路徑。

常用函數(shù):

函數(shù)功能說明示例
os.getcwd()獲取當(dāng)前工作目錄的絕對路徑print(os.getcwd()) → C:\project
os.path.join()智能拼接路徑(自動(dòng)適配系統(tǒng)分隔符)os.path.join('code', 'script.py') → code/script.py
os.path.abspath()將相對路徑轉(zhuǎn)換為絕對路徑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

代碼示例(帶詳細(xì)注釋):

import os  # 導(dǎo)入 os 模塊

# 1. 獲取當(dāng)前工作目錄
current_dir = os.getcwd()
print("當(dāng)前工作目錄:", current_dir)  # 輸出類似: C:\Users\張三\Desktop\project

# 2. 拼接路徑(推薦用這個(gè),避免手動(dòng)寫分隔符出錯(cuò))
# 比如要拼接 "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模塊(現(xiàn)代推薦,面向?qū)ο螅蓪W(xué)完面向?qū)ο蠛笤龠M(jìn)行回顧)

pathlib 是 Python 3.4+ 新增的模塊,用面向?qū)ο?/strong>的方式處理路徑,代碼更優(yōu)雅,是目前官方推薦的方式。

核心類:Path

方法/屬性功能說明示例
Path.cwd()獲取當(dāng)前工作目錄(等價(jià)于 os.getcwd())Path.cwd() → C:\project
Path.joinpath()拼接路徑(也可以用 / 運(yùn)算符)Path('code') / 'script.py' → code/script.py
Path.resolve()轉(zhuǎn)換為絕對路徑(等價(jià)于 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獲取上一級目錄(等價(jià)于 ..)Path('code/script.py').parent → code

代碼示例(帶詳細(xì)注釋):

from pathlib import Path  # 從 pathlib 導(dǎo)入 Path 類

# 1. 獲取當(dāng)前工作目錄
current_dir = Path.cwd()
print("當(dāng)前工作目錄:", current_dir)  # 輸出類似: C:\Users\張三\Desktop\project

# 2. 拼接路徑(推薦用 / 運(yùn)算符,超簡潔?。?
# 方式一:用 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  # 等價(jià)于 ../
print("上一級目錄:", parent_dir)  # 輸出: C:\Users\張三\Desktop

四、新手常見問題與注意事項(xiàng)

1. 路徑分隔符的“坑”

Windows 默認(rèn)用反斜杠 \,但在 Python 字符串中 \轉(zhuǎn)義字符(比如 \n 是換行),直接寫會報(bào)錯(cuò)!

錯(cuò)誤寫法:open("C:\Users\data.txt")\U 會被當(dāng)成轉(zhuǎn)義符)

正確寫法:

  • 用正斜杠 /open("C:/Users/data.txt")(推薦,跨系統(tǒng)兼容)
  • 用雙反斜杠 \\open("C:\\Users\\data.txt")
  • 用原始字符串 r""open(r"C:\Users\data.txt")(加 r 表示不轉(zhuǎn)義)

2. 相對路徑的“基準(zhǔn)”:當(dāng)前工作目錄(CWD)

相對路徑是相對于“當(dāng)前工作目錄”,而不是“腳本所在目錄”!

比如你在 Desktop 目錄下運(yùn)行 project/code/script.py,此時(shí) CWD 是 Desktop,不是 code。

如何獲取“腳本所在目錄”的絕對路徑?

如果希望路徑相對于腳本本身(無論在哪里運(yùn)行都能找到文件),可以用以下方法:

1.用 pathlib(推薦)

from pathlib import Path
# 獲取當(dāng)前腳本的絕對路徑,再取父目錄(即腳本所在文件夾)
script_dir = Path(__file__).resolve().parent
print("腳本所在目錄:", script_dir)

(注:__file__ 是 Python 內(nèi)置變量,表示當(dāng)前腳本的文件名)

2.用 os.path

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

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

不是不能有,但建議新手盡量用英文命名文件和文件夾,避免部分系統(tǒng)或舊版本 Python 出現(xiàn)編碼問題。

五、總結(jié)

  • 絕對路徑:完整地址,從根目錄開始,適合固定位置的文件;
  • 相對路徑:以當(dāng)前目錄為起點(diǎn),用 .(當(dāng)前)、..(上一級),適合項(xiàng)目內(nèi)文件;
  • Python 處理路徑:優(yōu)先用 pathlib(面向?qū)ο?,簡潔),也可以?os.path(傳統(tǒng));
  • 避坑要點(diǎn):注意分隔符轉(zhuǎn)義、明確當(dāng)前工作目錄、盡量用英文命名。

到此這篇關(guān)于一文講清Python中文件路徑的基本概念與操作方法的文章就介紹到這了,更多相關(guān)Python文件路徑操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

景泰县| 靖西县| 枣阳市| 安宁市| 行唐县| 当涂县| 左权县| 太湖县| 天台县| 云梦县| 砀山县| 临泉县| 同江市| 湖州市| 嘉善县| 循化| 高州市| 夹江县| 井冈山市| 台江县| 鄢陵县| 马鞍山市| 新干县| 沈阳市| 玉田县| 赤壁市| 奈曼旗| 封开县| 马公市| 揭西县| 探索| 乐安县| 沿河| 兴文县| 湾仔区| 清丰县| 潮安县| 宕昌县| 嘉禾县| 北流市| 九龙县|