建德網(wǎng)站seo溫州seo結(jié)算
目錄
專(zhuān)欄導(dǎo)讀?
1 文件的目錄操作
?os模塊的一些操作目錄函數(shù)?編輯
?os.path 模塊的操作目錄函數(shù)
?2 相對(duì)路徑和絕對(duì)路徑?
3 路徑拼接
?4 判斷目錄是否存在
5 創(chuàng)建目錄、刪除目錄、遍歷目錄
專(zhuān)欄導(dǎo)讀?
專(zhuān)欄訂閱地址:https://blog.csdn.net/qq_35831906/category_12375510.html
1 文件的目錄操作
在Python中,os
模塊和os.path
模塊是兩個(gè)常用的模塊,用于進(jìn)行文件和目錄操作。
os
模塊:
os
模塊提供了許多用于操作操作系統(tǒng)功能的函數(shù)。它允許您執(zhí)行文件和目錄操作,創(chuàng)建和刪除目錄,獲取當(dāng)前工作目錄,執(zhí)行系統(tǒng)命令等。- 該模塊提供了一種跨平臺(tái)的方法來(lái)訪問(wèn)操作系統(tǒng)功能,因此可以在不同的操作系統(tǒng)上運(yùn)行相同的Python代碼。
os.path
模塊:
os.path
模塊提供了用于處理文件路徑和目錄路徑的函數(shù)。它不執(zhí)行實(shí)際的文件或目錄操作,而是提供了一些有用的方法來(lái)處理路徑字符串。- 該模塊可以用于檢查文件或目錄是否存在,獲取文件名或目錄名,獲取文件的擴(kuò)展名,拼接路徑等操作。
下面是一些常用的函數(shù)示例:
import os# os模塊示例
os.mkdir('new_directory') # 創(chuàng)建目錄
os.rmdir('directory_to_delete') # 刪除目錄
contents = os.listdir('directory_to_list') # 列出目錄內(nèi)容
os.chdir('new_working_directory') # 更改當(dāng)前工作目錄# os.path模塊示例
file_path = 'path/to/file.txt'
dir_path = 'path/to/directory'
print(os.path.exists(file_path)) # 檢查文件是否存在
print(os.path.basename(file_path)) # 獲取文件名
print(os.path.dirname(file_path)) # 獲取文件所在目錄
print(os.path.splitext(file_path)) # 獲取文件擴(kuò)展名
print(os.path.join(dir_path, 'new_file.txt')) # 拼接路徑
假設(shè)在當(dāng)前工作目錄下有一個(gè)名為directory_to_list
的目錄,該目錄中包含一些文件和子目錄,如file.txt
等。假設(shè)當(dāng)前工作目錄已更改為new_working_directory
,而且目錄new_directory
已被創(chuàng)建。
示例輸出如下:
True # 文件'to/file.txt'存在
file.txt # 獲取文件名
path/to # 獲取文件所在目錄
('path/to/file', '.txt') # 獲取文件擴(kuò)展名
path/to/directory/new_file.txt # 拼接路徑
?注意,
os.path
模塊中的函數(shù)可以直接在不同的操作系統(tǒng)上使用,因?yàn)樗鼈儠?huì)根據(jù)操作系統(tǒng)自動(dòng)處理路徑分隔符。而os
模塊中的函數(shù)可能在不同操作系統(tǒng)上有不同的行為,需要小心使用。
?os模塊的一些操作目錄函數(shù)
?os.path 模塊的操作目錄函數(shù)
?2 相對(duì)路徑和絕對(duì)路徑?
在計(jì)算機(jī)文件系統(tǒng)中,路徑用于定位文件或目錄的位置。Python中的路徑可以分為相對(duì)路徑和絕對(duì)路徑。
- 相對(duì)路徑(Relative Path): 相對(duì)路徑是相對(duì)于當(dāng)前工作目錄(當(dāng)前腳本所在目錄)的路徑。它不包含完整的文件系統(tǒng)路徑,而是指定文件或目錄相對(duì)于當(dāng)前位置的位置。
例如,假設(shè)當(dāng)前工作目錄為/home/user/Documents
,而目標(biāo)文件file.txt
位于該目錄下,則可以使用相對(duì)路徑file.txt
來(lái)指定該文件。相對(duì)路徑?jīng)]有以根目錄(如/
)開(kāi)頭,而是從當(dāng)前位置開(kāi)始描述路徑。
- 絕對(duì)路徑(Absolute Path): 絕對(duì)路徑是指從根目錄開(kāi)始描述文件或目錄的完整路徑。它包含文件系統(tǒng)的完整路徑信息。
例如,假設(shè)目標(biāo)文件file.txt
位于/home/user/Documents
目錄下,絕對(duì)路徑將是/home/user/Documents/file.txt
。
Python中可以使用os
模塊來(lái)處理路徑,例如:
import os# 獲取當(dāng)前工作目錄
current_dir = os.getcwd()
print("當(dāng)前工作目錄:", current_dir)# 使用相對(duì)路徑
relative_path = "file.txt" # 文件所在的相對(duì)路徑
file_path = os.path.join(current_dir, relative_path)
print("文件路徑:", file_path)# 使用絕對(duì)路徑
absolute_path = "/home/user/Documents/file.txt"
file_path = os.path.abspath(absolute_path)
print("絕對(duì)路徑:", file_path)
假設(shè)當(dāng)前工作目錄為/home/user/Documents
,文件file.txt
位于該目錄下,則代碼的預(yù)期輸出結(jié)果應(yīng)該是:
當(dāng)前工作目錄: /home/user/Documents
文件路徑: /home/user/Documents/file.txt #當(dāng)前工作目錄+相對(duì)路徑(file.txt)
絕對(duì)路徑: /home/user/Documents/file.txt
3 路徑拼接
在Python中,可以使用os.path.join()
函數(shù)來(lái)拼接路徑。這個(gè)函數(shù)會(huì)根據(jù)當(dāng)前操作系統(tǒng)的規(guī)范正確地拼接路徑,并自動(dòng)處理路徑分隔符。
示例代碼:
import os# 定義目錄和文件名
directory = "/home/user/Documents"
filename = "file.txt"# 使用os.path.join()拼接路徑
file_path = os.path.join(directory, filename)# 打印結(jié)果
print("拼接后的路徑:", file_path)
輸出結(jié)果為:?
?在上面的示例中,
os.path.join()
函數(shù)會(huì)將directory
和filename
兩個(gè)部分拼接成完整的文件路徑,并且自動(dòng)處理路徑分隔符,確保路徑的正確性。
4 判斷目錄是否存在
在Python中,你可以使用os.path.exists()
函數(shù)來(lái)判斷一個(gè)目錄是否存在。這個(gè)函數(shù)接受一個(gè)目錄路徑作為參數(shù),如果該目錄存在,則返回True
,否則返回False
。
import os# 定義目錄路徑
directory = "/path/to/directory"# 判斷目錄是否存在
if os.path.exists(directory):print("目錄存在")
else:print("目錄不存在")
5 創(chuàng)建目錄、刪除目錄、遍歷目錄
????????在Python中,你可以使用os.mkdir()
函數(shù)來(lái)創(chuàng)建目錄,使用os.rmdir()
函數(shù)來(lái)刪除目錄,以及使用os.listdir()
函數(shù)來(lái)遍歷目錄中的文件和子目錄。
5.1 創(chuàng)建目錄示例代碼:?
import os# 定義目錄路徑
directory = "/path/to/new_directory"# 創(chuàng)建目錄
os.mkdir(directory)
print("目錄已創(chuàng)建")
5.2 刪除目錄示例代碼:
import os# 定義目錄路徑
directory = "/path/to/directory_to_delete"# 刪除目錄
os.rmdir(directory)
print("目錄已刪除")
5.3? 遍歷目錄示例代碼:
import os# 定義目錄路徑
directory = "/path/to/directory_to_traverse"# 遍歷目錄
for filename in os.listdir(directory):filepath = os.path.join(directory, filename)if os.path.isfile(filepath):print("文件:", filename)elif os.path.isdir(filepath):print("子目錄:", filename)
請(qǐng)確保將/path/to/new_directory
、/path/to/directory_to_delete
和/path/to/directory_to_traverse
分別替換為你想要?jiǎng)?chuàng)建、刪除和遍歷的目錄路徑。
下一篇:介紹文件的批量處理,文件的權(quán)限修改等高級(jí)文件操作。