python中os庫的具體使用
以下是關(guān)于 Python 中 os 庫的一些常見知識點及相應(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 目錄下運行,那么輸出可能是:
當(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)建一個新的目錄。
例子:
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 目錄下將會創(chuàng)建一個名為 new_dir 的新目錄。
6. 刪除目錄
os.rmdir() 函數(shù)用于刪除一個空的目錄(即目錄內(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í)行上述代碼后,將會刪除在前面例子中創(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ù)實際情況,將會輸出相應(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ù)實際情況,將會輸出相應(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é)")
將會輸出指定文件的大小信息。
10. 拼接路徑
os.path.join() 函數(shù)用于將多個路徑片段拼接成一個完整的路徑,這樣可以避免因操作系統(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}")
輸出將會是一個完整的路徑,如:
拼接后的路徑: /home/user/documents/file1.txt
11. 獲取文件的絕對路徑
os.path.abspath() 函數(shù)用于獲取指定文件或目錄的絕對路徑。
例子:
import os relative_path = "test.txt" absolute_path = os.path.abspath(relative_path) print("文件的絕對路徑:", absolute_path)
假設(shè)當(dāng)前工作目錄是 /home/user/documents,且該目錄下存在 test.txt 文件,那么輸出可能是:
文件的絕對路徑: /home/user/documents/test.txt
12. 獲取文件的擴(kuò)展名
os.path.splitext() 函數(shù)可以將文件名拆分成文件名主體和擴(kuò)展名兩部分,并返回一個包含這兩部分的元組。
例子:
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ù)用于對文件或目錄進(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 庫來實現(xià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 位置,生成一個新的文件 copy_file2.txt。
16. 遍歷目錄樹(包括子目錄)
可以使用 os.walk() 函數(shù)來遍歷一個目錄及其所有子目錄,它會返回一個生成器,每次迭代會返回一個三元組,包含當(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í)行上述代碼后,會依次遍歷 /home/user/documents 目錄及其所有子目錄,并輸出每個目錄的相關(guān)信息。
17. 判斷路徑是否為絕對路徑
os.path.isabs() 函數(shù)用于判斷一個路徑是否為絕對路徑,返回 True 如果是絕對路徑,F(xiàn)alse 如果是相對路徑。
例子:
import os path1 = "/home/user/documents/file1.txt" path2 = "documents/file1.txt" if os.path.isabs(path1): print(f"{path1} 是絕對路徑") else: print(f"{path1} 是相對路徑") if os.path.isabs(path2): print(f"{path2} 是絕對_path") else: print(f"{path2} 是相對_path")
根據(jù)實際情況,會輸出相應(yīng)的判斷結(jié)果。
18. 獲取當(dāng)前操作系統(tǒng)名稱
os.name 可以獲取當(dāng)前運行 Python 程序的操作系統(tǒng)名稱,在 Windows 下返回 nt,在 Linux 和 macOS 下返回 posix。
例子:
import os operating_system = os.name print("當(dāng)前操作系統(tǒng):", operating_system)
根據(jù)你運行程序的操作系統(tǒng),會輸出相應(yīng)的結(jié)果,如在 Windows 下輸出 nt,在 Linux 下輸出 posix。
19. 清除控制臺屏幕(在某些操作系統(tǒng)下)
在 Windows 下,可以使用 os.system(‘cls’) 來清除控制臺屏幕;在 Linux 和 macOS 下,可以使用 os.system(‘clear’)。
例子:
import os # 假設(shè)在Windows下運行 os.system('cls') # 假設(shè)在Linux或macOS下運行 os.system('clear')
注意:這種方式只是簡單地調(diào)用系統(tǒng)命令來實現(xiàn)清除屏幕的功能,在一些復(fù)雜的環(huán)境下可能效果不佳或存在兼容性問題。
20. 查找文件或目錄(在指定目錄及子目錄中)
可以使用 os.walk() 結(jié)合條件判斷來查找指定的文件或目錄在某個目錄及其子目錄中的位置。
例子:
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 及它的子目錄中存在,那么會輸出其所在的目錄位置。
到此這篇關(guān)于python中os庫的具體使用的文章就介紹到這了,更多相關(guān)python os庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python3.9實現(xiàn)pyinstaller打包python文件成exe
這篇文章主要介紹了python3.9實現(xiàn)pyinstaller打包python文件成exe,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Python?Pexpect庫自動化交互式進(jìn)程控制的expect_list方法解析
Pexpect是一個Python庫,為自動化和交互式進(jìn)程控制提供了豐富的功能,而expect_list方法是其功能強大且靈活的一部分,將詳細(xì)探討如何使用這一方法,并提供多個示例來說明其應(yīng)用場景和功能2024-01-01