python中os庫的具體使用
以下是關(guān)于 Python 中 os 庫的一些常見知識(shí)點(diǎn)及相應(yīng)的例子說明:
1. 導(dǎo)入 os 庫
在使用 os 庫之前,需要先導(dǎo)入它。通常使用以下方式導(dǎo)入:
import os
2. 獲取當(dāng)前工作目錄
os.getcwd() 函數(shù)用于獲取當(dāng)前 Python 腳本所在的工作目錄。
例子:
import os current_directory = os.getcwd() print("當(dāng)前工作目錄:", current_directory)
假設(shè)你的 Python 腳本在 /home/user/projects 目錄下運(yùn)行,那么輸出可能是:
當(dāng)前工作目錄: /home/user/projects
3. 改變工作目錄
os.chdir() 函數(shù)可以用來改變當(dāng)前的工作目錄。
例子:
import os # 假設(shè)當(dāng)前工作目錄是 /home/user/projects os.chdir("/home/user/documents") new_current_directory = os.getcwd() print("改變后的工作目錄:", new_current_directory)
輸出可能是:
改變后的工作目錄: /home/user/documents
4. 列出目錄內(nèi)容
os.listdir() 函數(shù)用于列出指定目錄下的所有文件和子目錄(不包括隱藏文件和目錄,除非特別設(shè)置)。
例子:
import os # 假設(shè)當(dāng)前工作目錄是 /home/user/documents directory_contents = os.listdir() print("目錄內(nèi)容:", directory_contents)
如果 /home/user/documents 目錄下有文件 file1.txt、file2.jpg 和子目錄 subdir,那么輸出可能是:
目錄內(nèi)容: ['file1.txt', 'file2.jpg', 'subdir']
5. 創(chuàng)建目錄
os.mkdir() 函數(shù)用于創(chuàng)建一個(gè)新的目錄。
例子:
import os # 假設(shè)當(dāng)前工作目錄是 /home/user/documents new_directory_name = "new_dir" os.mkdir(new_directory_name) print(f"已創(chuàng)建目錄:{new_directory_name}")
執(zhí)行上述代碼后,在 /home/user/documents 目錄下將會(huì)創(chuàng)建一個(gè)名為 new_dir 的新目錄。
6. 刪除目錄
os.rmdir() 函數(shù)用于刪除一個(gè)空的目錄(即目錄內(nèi)不能有任何文件或子目錄)。
例子:
import os # 假設(shè)當(dāng)前工作目錄是 /home/user/documents directory_to_delete = "new_dir" os.rmdir(directory_to_delete) print(f"已刪除目錄:{directory_to_delete}")
執(zhí)行上述代碼后,將會(huì)刪除在前面例子中創(chuàng)建的 new_dir 目錄(前提是該目錄為空)。
7. 判斷文件或目錄是否存在
os.path.exists() 函數(shù)用于判斷指定的文件或目錄是否存在。
例子:
import os file_path = "/home/user/documents/file1.txt" directory_path = "/home/user/documents/subdir" if os.path.exists(file_path): print(f"{file_path} 存在") else: print(f"{file_path} 不存在") if os.path.exists(directory_path): print(f"{directory_path} 存在") else: print(f"{directory_path} 不存在")
根據(jù)實(shí)際情況,將會(huì)輸出相應(yīng)的存在或不存在的信息。
8. 判斷是文件還是目錄
os.path.isfile() 函數(shù)用于判斷指定的路徑是文件還是目錄,返回 True 如果是文件,F(xiàn)alse 如果是目錄。同樣,os.path.isdir() 函數(shù)用于判斷是否為目錄,返回 True 如果是目錄,F(xiàn)alse 如果是文件。
例子:
import os path = "/home/user/documents/file1.txt" if os.path.isfile(path): print(f"{path} 是文件") else: print(f"{path} 是目錄") path = "/home/user/documents/subdir" if os.path.isdir(path): print(f"{path} 是目錄") else: print(f"{path} 是文件")
根據(jù)實(shí)際情況,將會(huì)輸出相應(yīng)的判斷結(jié)果。
9. 獲取文件大小
os.path.getsize() 函數(shù)用于獲取指定文件的大小,單位是字節(jié)。
例子:
import os file_path = "/home/user/documents/file1.txt" file_size = os.path.getsize(file_path) print(f"{file_path} 的大小為 {file_size} 字節(jié)")
將會(huì)輸出指定文件的大小信息。
10. 拼接路徑
os.path.join() 函數(shù)用于將多個(gè)路徑片段拼接成一個(gè)完整的路徑,這樣可以避免因操作系統(tǒng)不同而導(dǎo)致的路徑分隔符問題(Windows 使用 \,Linux 和 macOS 使用 /)。
例子:
import os directory = "/home/user/documents" file_name = "file1.txt" full_path = os.path.join(directory, file_name) print(f"拼接后的路徑:{full_path}")
輸出將會(huì)是一個(gè)完整的路徑,如:
拼接后的路徑: /home/user/documents/file1.txt
11. 獲取文件的絕對(duì)路徑
os.path.abspath() 函數(shù)用于獲取指定文件或目錄的絕對(duì)路徑。
例子:
import os relative_path = "test.txt" absolute_path = os.path.abspath(relative_path) print("文件的絕對(duì)路徑:", absolute_path)
假設(shè)當(dāng)前工作目錄是 /home/user/documents,且該目錄下存在 test.txt 文件,那么輸出可能是:
文件的絕對(duì)路徑: /home/user/documents/test.txt
12. 獲取文件的擴(kuò)展名
os.path.splitext() 函數(shù)可以將文件名拆分成文件名主體和擴(kuò)展名兩部分,并返回一個(gè)包含這兩部分的元組。
例子:
import os file_path = "/home/user/documents/file1.txt" name, extension = os.path.splitext(file_path) print("文件名主體:", name) print("擴(kuò)展名:", extension)
輸出:
文件名主體: /home/user/documents/file1
擴(kuò)展名:.txt
13. 分離路徑中的目錄和文件名
os.path.dirname() 和 os.path.basename() 函數(shù)分別用于獲取路徑中的目錄部分和文件名部分。
例子:
import os file_path = "/home/user/documents/file1.txt" directory = os.path.dirname(file_path) filename = os.path.basename(file_path) print("目錄部分:", directory) print("文件名部分:", filename)
輸出:
目錄部分: /home/user/documents
文件名部分: file1.txt
14. 重命名文件或目錄
os.rename() 函數(shù)用于對(duì)文件或目錄進(jìn)行重命名操作。
例子:
import os original_name = "/home/user/documents/file1.txt" new_name = "/home/user/documents/file2.txt" os.rename(original_name, new_name) print(f"已將 {original_name} 重命名為 {new_name}")
執(zhí)行上述代碼后,file1.txt 文件將被重命名為 file2.txt。
15. 復(fù)制文件(需要借助 shutil 庫)
雖然 os 庫本身沒有直接提供復(fù)制文件的功能,但可以結(jié)合 shutil 庫來實(shí)現(xiàn)。這里先簡(jiǎn)單介紹下與 os 相關(guān)的部分,假設(shè)已經(jīng)導(dǎo)入了 shutil 庫。
例子:
import os import shutil source_file = "/home/user/documents/file2.txt" destination_file = "/home/user/documents/copy_file2.txt" shutil.copyfile(source_file, destination_file) print(f"已將 {source_file} 復(fù)制到 {destination_file}")
執(zhí)行上述代碼后,file2.txt 文件將被復(fù)制到 destination_file 位置,生成一個(gè)新的文件 copy_file2.txt。
16. 遍歷目錄樹(包括子目錄)
可以使用 os.walk() 函數(shù)來遍歷一個(gè)目錄及其所有子目錄,它會(huì)返回一個(gè)生成器,每次迭代會(huì)返回一個(gè)三元組,包含當(dāng)前目錄、當(dāng)前目錄下的子目錄列表和當(dāng)前目錄下的文件列表。
例子:
import os root_directory = "/home/user/documents" for root, dirs, files in os.walk(root_directory): print("當(dāng)前目錄:", root) print("子目錄列表:", dirs) print("文件列表:", files) print("-" * 50)
執(zhí)行上述代碼后,會(huì)依次遍歷 /home/user/documents 目錄及其所有子目錄,并輸出每個(gè)目錄的相關(guān)信息。
17. 判斷路徑是否為絕對(duì)路徑
os.path.isabs() 函數(shù)用于判斷一個(gè)路徑是否為絕對(duì)路徑,返回 True 如果是絕對(duì)路徑,F(xiàn)alse 如果是相對(duì)路徑。
例子:
import os path1 = "/home/user/documents/file1.txt" path2 = "documents/file1.txt" if os.path.isabs(path1): print(f"{path1} 是絕對(duì)路徑") else: print(f"{path1} 是相對(duì)路徑") if os.path.isabs(path2): print(f"{path2} 是絕對(duì)_path") else: print(f"{path2} 是相對(duì)_path")
根據(jù)實(shí)際情況,會(huì)輸出相應(yīng)的判斷結(jié)果。
18. 獲取當(dāng)前操作系統(tǒng)名稱
os.name 可以獲取當(dāng)前運(yùn)行 Python 程序的操作系統(tǒng)名稱,在 Windows 下返回 nt,在 Linux 和 macOS 下返回 posix。
例子:
import os operating_system = os.name print("當(dāng)前操作系統(tǒng):", operating_system)
根據(jù)你運(yùn)行程序的操作系統(tǒng),會(huì)輸出相應(yīng)的結(jié)果,如在 Windows 下輸出 nt,在 Linux 下輸出 posix。
19. 清除控制臺(tái)屏幕(在某些操作系統(tǒng)下)
在 Windows 下,可以使用 os.system(‘cls’) 來清除控制臺(tái)屏幕;在 Linux 和 macOS 下,可以使用 os.system(‘clear’)。
例子:
import os # 假設(shè)在Windows下運(yùn)行 os.system('cls') # 假設(shè)在Linux或macOS下運(yùn)行 os.system('clear')
注意:這種方式只是簡(jiǎn)單地調(diào)用系統(tǒng)命令來實(shí)現(xiàn)清除屏幕的功能,在一些復(fù)雜的環(huán)境下可能效果不佳或存在兼容性問題。
20. 查找文件或目錄(在指定目錄及子目錄中)
可以使用 os.walk() 結(jié)合條件判斷來查找指定的文件或目錄在某個(gè)目錄及其子目錄中的位置。
例子:
import os root_directory = "/home/user/documents" target_file = "file1.txt" for root, dirs, files in os.walk(root_directory): if target_file in files: print(f"找到 {target_file} 在 {root} 目錄下") break
執(zhí)行上述代碼后,如果 file1.txt 在 /home/user/documents 及它的子目錄中存在,那么會(huì)輸出其所在的目錄位置。
到此這篇關(guān)于python中os庫的具體使用的文章就介紹到這了,更多相關(guān)python os庫內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python流程控制 if else實(shí)現(xiàn)解析
這篇文章主要介紹了Python 流程控制 if else實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09python3.9實(shí)現(xiàn)pyinstaller打包python文件成exe
這篇文章主要介紹了python3.9實(shí)現(xiàn)pyinstaller打包python文件成exe,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Python?Pexpect庫自動(dòng)化交互式進(jìn)程控制的expect_list方法解析
Pexpect是一個(gè)Python庫,為自動(dòng)化和交互式進(jìn)程控制提供了豐富的功能,而expect_list方法是其功能強(qiáng)大且靈活的一部分,將詳細(xì)探討如何使用這一方法,并提供多個(gè)示例來說明其應(yīng)用場(chǎng)景和功能2024-01-01Python找出最小的K個(gè)數(shù)實(shí)例代碼
這篇文章主要介紹了Python找出最小的K個(gè)數(shù)實(shí)例代碼,簡(jiǎn)單分析了實(shí)現(xiàn)思路,冒泡法和partition思想,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01Python 專題一 函數(shù)的基礎(chǔ)知識(shí)
本文從系統(tǒng)提供的內(nèi)部函數(shù)、第三方提供函數(shù)庫+簡(jiǎn)單爬出代碼及安裝httplib2模塊過程和用戶自定函數(shù)三個(gè)方面進(jìn)行講述。具有很好的參考價(jià)值。下面跟著小編一起來看下吧2017-03-03