網站首頁 編程語言 正文
Python中文件路徑
絕對路徑和相對路徑
絕對路徑就是文件的真正存在的路徑,是指從硬盤的根目錄(盤符)開始,進行一級級目錄指向文件。??相對路徑就是以當前文件為基準進行一級級目錄指向被引用的資源文件。?
以下是常用的表示當前目錄和當前目錄的父級目錄的標識符 :
../ 表示當前文件所在的目錄的上一級目錄?
./ 表示當前文件所在的目錄(可以省略)?
/ 表示當前站點的根目錄(域名映射的硬盤目錄)
"/"左傾斜是正斜杠,"\"右傾斜是反斜杠,可以記為:除號是正斜杠“/”,一般來說對于目錄分隔符,
(一)目錄中的斜杠們
python讀文件需要輸入的目錄參數,列出以下例子:
path?= r"C:\Windows\temp\readme.txt"
path1?= r"c:\windows\temp\readme.txt"
path2?= "c:\\windows\\temp\\readme.txt"
path3?= "c:/windows/temp/readme.txt"
打開文件函數open()中的參數可以是path也可以是path1、path2、path3。
path:"\"為字符串中的特殊字符,加上r后變為原始字符串,則不會對字符串中的"\t"、"\r"????????進行字符串轉義
path1:大小寫不影響windows定位到文件
path2:用一個"\"取消第二個"\"的特殊轉義作用,即為"\\"
path3:用正斜杠做目錄分隔符也可以轉到對應目錄,并且在python中path3的方式也省去了反斜杠\轉義的煩惱
(二)正則表達式中的斜杠們
正則表達式匹配反斜杠"\",為什么是"\\\\"或是 r"\\"呢?
因為在正則表達式中\為特殊符號,為了取消它在正則表達式中的特殊意義需要加一個\就變成了\\,但是問題又來了,\也是字符串中的特殊字符,所以又要分別對兩個\取消其特殊意義,即為\\\\。Python中有一個原始字符串操作符,用于那些字符串中出現特殊字符,在原始字符串中,沒有轉義字符和不能打印的字符。這樣就可以取消了\在字符串中的轉義功能,即r"\\"。
什么是文件路徑,Python中如何書寫文件路徑?
當程序運行時,變量是保存數據的好方法,但變量、序列以及對象中存儲的數據是暫時的,程序結束后就會丟失,如果希望程序結束后數據仍然保持,就需要將數據保存到文件中。Python 提供了內置的文件對象,以及對文件、目錄進行操作的內置模塊,通過這些技術可以很方便地將數據保存到文件(如文本文件等)中。
關于文件,它有兩個關鍵屬性,分別是“文件名”和“路徑”。其中,文件名指的是為每個文件設定的名稱,而路徑則用來指明文件在計算機上的位置。例如,我的 Windows 7 筆記本上有一個文件名為 projects.docx(句點之后的部分稱為文件的“擴展名”,它指出了文件的類型),它的路徑在 D:\demo\exercise,也就是說,該文件位于 D 盤下 demo 文件夾中 exercise 子文件夾下。
通過文件名和路徑可以分析出,project.docx 是一個 Word 文檔,demo 和 exercise 都是指“文件夾”(也稱為目錄)。文件夾可以包含文件和其他文件夾,例如 project.docx 在 exercise 文件夾中,該文件夾又在 demo 文件夾中。
注意,路徑中的 D:\ 指的是“根文件夾”,它包含了所有其他文件夾。在 Windows 中,根文件夾名為 D:\,也稱為 D: 盤。在 OS X 和 Linux 中,根文件夾是 /。本教程使用的是 Windows 風格的根文件夾,如果你在 OS X 或 Linux 上輸入交互式環境的例子,請用 / 代替。
另外,附加卷(諸如 DVD 驅動器或 USB 閃存驅動器),在不同的操作系統上顯示也不同。在 Windows 上,它們表示為新的、帶字符的根驅動器。諸如 D:\ 或 E:\。在 OS X 上,它們表示為新的文件夾,在 /Volumes 文件夾下。在 Linux 上,它們表示為新的文件夾,在 /mnt 文件夾下。同時也要注意,雖然文件夾名稱和文件名在 Windows 和 OS X 上是不區分大小寫的,但在 Linux 上是區分大小寫的。
Windows上的反斜杠以及OS X和Linux上的正斜杠
在 Windows 上,路徑書寫使用反斜杠 "\" 作為文件夾之間的分隔符。但在 OS X 和 Linux 上,使用正斜杠 "/" 作為它們的路徑分隔符。如果想要程序運行在所有操作系統上,在編寫 Python 腳本時,就必須處理這兩種情況。
好在,用 os.path.join() 函數來做這件事很簡單。如果將單個文件和路徑上的文件夾名稱的字符串傳遞給它,os.path.join() 就會返回一個文件路徑的字符串,包含正確的路徑分隔符。在交互式環境中輸入以下代碼:
>>> import os
>>> os.path.join('demo', 'exercise')
'demo\\exercise'
因為此程序是在 Windows 上運行的,所以 os.path.join('demo', 'exercise') 返回 'demo\\exercise'(請注意,反斜杠有兩個,因為每個反斜杠需要由另一個反斜杠字符來轉義)。如果在 OS X 或 Linux 上調用這個函數,該字符串就會是 'demo/exercise'。
不僅如此,如果需要創建帶有文件名稱的文件存儲路徑,os.path.join() 函數同樣很有用。例如,下面的例子將一個文件名列表中的名稱,添加到文件夾名稱的末尾:
import os
myFiles = ['accounts.txt', 'details.csv', 'invite.docx']
for filename in myFiles:
? ? print(os.path.join('C:\\demo\\exercise', filename))
運行結果為:
C:\demo\exercise\accounts.txt
C:\demo\exercise\details.csv
C:\demo\exercise\invite.docx
原文鏈接:https://blog.csdn.net/weixin_41811657/article/details/85158003
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-03-26 C語言實現字符串替換的示例代碼_C 語言
- 2022-03-28 Android實現調取支付寶健康碼_Android
- 2022-09-12 IOS開發自定義view方法規范示例_IOS
- 2022-04-09 Object 轉Map,Map轉Object方式總結
- 2022-06-21 flask上傳作品之dbm操作的實現_python
- 2022-08-13 深入理解Linux內核select多路復用原理
- 2022-08-20 Python簡明講解filter函數的用法_python
- 2023-07-04 HKDF秘鑰生成算法
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支