Python的OS模組的使用方法及範例
Python的os模組是用於與作業系統互動的標準庫之一,它提供了許多有用的函數和變量,以便處理檔案和目錄。以下是一些常見的os模組函數的用法:
1.取得目前工作目錄:
import os cwd = os.getcwd() print(cwd)
2.切換目前工作目錄:
import os os.chdir('/path/to/new/directory')
3.列出目錄中的所有檔案和子目錄:
import os files = os.listdir('/path/to/directory') print(files)
4.檢查給定的路徑是否為目錄:
import os path = '/path/to/directory' if os.path.isdir(path): print("It's a directory") else: print("It's not a directory")
5.檢查給定的路徑是否為檔案:
import os path = '/path/to/file' if os.path.isfile(path): print("It's a file") else: print("It's not a file")
6.取得檔案的大小(以位元組為單位):
import os path = '/path/to/file' size = os.path.getsize(path) print(size)
7.檢查給定的路徑是否存在:
import os path = '/path/to/file_or_directory' if os.path.exists(path): print("It exists") else: print("It doesn't exist")
8.建立新目錄:
import os path = '/path/to/new/directory' os.mkdir(path)
9.遞歸建立新目錄(如果目錄不存在):
import os path = '/path/to/new/directory' os.makedirs(path, exist_ok=True)
10.刪除檔案或空白目錄:
import os path = '/path/to/file_or_directory' os.remove(path)
11.遞迴刪除目錄及其內容:
import os path = '/path/to/directory' os.system('rm -rf ' + path)
其它一些便捷用法:
12.os.path.splitext() 方法是將一個路徑分割成檔案名稱和副檔名兩部分。它會以檔案名稱中的最後一個 "." 作為分隔符,將檔案名稱和副檔名分開。例如,如果檔案路徑為 "/path/to/file.txt",則 os.path.splitext() 方法會傳回一個元組 ("/path/to/file", ".txt")。
要注意的是,如果檔案名稱中沒有 ".",則傳回的副檔名為空字串。如果檔案名稱以 "." 開頭,則視為無副檔名文件,os.path.splitext() 方法將會傳回 (檔案路徑, '')。
以下是一個範例:
import os path = '/path/to/file.txt' file_name, ext = os.path.splitext(path) print('文件名为:', file_name) print('扩展名为:', ext)
輸出結果為:
檔名: /path/to/file
副檔名為: .txt
13.設定檔案權限:
import os os.chmod('/path/to/file', 0o777) # 设置读、写、执行权限
os.chmod() 方法可以用來修改檔案或目錄的存取權限。它接受兩個參數:檔案路徑和新的權限模式。權限模式可以使用八進制數表示,每個位元表示不同的權限。
以下是一些權限模式的範例:
0o400:只讀權限
0o200:寫入權限
0o100:執行權限
0o700:所有權限
import os cpu_count = os.cpu_count() print('CPU数量为:', cpu_count)要注意的是,os.cpu_count() 傳回的CPU數量是實體CPU核心數,不包含超執行緒技術的虛擬核心。在具有超執行緒技術的系統中,每個實體CPU核心都會被劃分為兩個虛擬核心,因此os.cpu_count()方法可能會傳回比實際CPU核心數以上的數量。 另外,os.cpu_count()方法在不同的作業系統上可能會有不同的實作。在某些作業系統上,它可能只會傳回邏輯CPU核心數,而不是實體CPU核心數。因此,在使用該方法時,最好查閱相關的文件以獲取更多資訊。 15.啟動新進程:
import os os.system('notepad.exe')os.system() 方法可以在作業系統上執行一個指令,並傳回指令的退出狀態碼。它的參數是一個字串類型的命令,可以是任何有效的系統命令。 以下是一個範例,示範如何使用os.system()方法來執行一個簡單的指令:
import os os.system('echo "Hello, World!"')上述程式碼將輸出Hello, World!字串,並傳回指令的退出狀態碼(通常為0表示成功)。 要注意的是,os.system() 方法會阻塞目前進程,直到指令執行完成。如果希望在執行指令時不阻塞目前進程,可以考慮使用subprocess模組中的其他方法,如subprocess.Popen()。 以下是另一個範例,示範如何使用os.system()方法來執行一個複雜的指令,例如在Linux系統上使用wget下載一個檔案:
import os url = 'https://example.com/file.zip' output_dir = '/path/to/output' command = f'wget {url} -P {output_dir}' os.system(command)上述程式碼會將url參數指定的檔案下載到output_dir參數指定的目錄中,並傳回指令的退出狀態碼。 16.os.environ:這是一個包含目前環境變數的字典。可以使用os.environ[key]來取得特定環境變數的值。 17.os.exec*():這些方法允許Python程式在目前處理程序中執行其他程序,取代目前程序。例如,os.execv() 方法可以使用指定的參數清單執行一個程序,取代目前程序。 18.os.fork():這個方法可以在Unix或Linux作業系統上建立一個子進程,用於並行執行程式。子進程將複製父進程的所有記憶體內容,包括程式碼、資料和堆疊等,因此可以在父進程的基礎上繼續執行程式。 19.os.kill():這個方法用來向指定程序發送訊號。可以使用os.kill(pid, signal)方法向指定的程序發送指定的訊號。常用的訊號包括SIGINT(中斷訊號)、SIGTERM(終止訊號)和SIGKILL(強制終止訊號)等。 20.os.pipe():這個方法可以建立一個管道,用於在進程之間進行通訊。 os.pipe()方法將傳回兩個檔案描述符,一個用於讀取管道數據,另一個用於寫入管道數據。 21.os.wait():這個方法可以等待子程序的結束,然後回傳子程序的狀態碼。可以使用os.waitpid(pid, options)方法等待指定的進程結束,並傳回進程的狀態碼。
22.os模块可以用来操作文件路径。例如,os.path.join(path, *paths)可以将多个路径拼接成一个完整路径,os.path.abspath(path)可以将相对路径转换为绝对路径,os.path.split(path)可以将路径分割成目录和文件名。
23.遍历目录树
import os def list_files(path): for root, dirs, files inos.walk(path): for file in files: print(os.path.join(root, file)) list_files('.')
这段代码可以遍历当前工作目录及其子目录下的所有文件,并打印出它们的完整路径。
os.walk()是os模块中一个非常有用的函数,用于遍历指定目录及其子目录下的所有文件和目录。它返回一个三元组(root, dirs, files),其中root是当前目录的路径,dirs是当前目录下的子目录列表,files是当前目录下的文件列表。下面是一个os.walk()的详细解释和示例:
for root, dirs, files in os.walk(top, topdown=True, onerror=None, followlinks=False): # Do something with root, dirs, and files
top是指定的目录路径,可以是相对路径或绝对路径。
topdown是一个布尔值,表示遍历时是否先遍历当前目录,再遍历子目录。如果为True(默认值),则先遍历当前目录,再遍历子目录;如果为False,则先遍历子目录,再遍历当前目录。
onerror是一个可选的错误处理函数,如果在遍历过程中出现错误,则会调用这个函数。
followlinks是一个布尔值,表示是否跟随符号链接。如果为True,则会跟随符号链接遍历目录;如果为False(默认值),则会忽略符号链接。
在遍历过程中,os.walk()会依次遍历指定目录及其子目录下的所有文件和目录,并返回当前目录的路径、子目录列表和文件列表。可以通过遍历返回的三元组来处理目录和文件。例如,可以使用下面的代码列出指定目录下的所有文件和子目录:
import os def list_files_and_dirs(path): for root, dirs, files in os.walk(path): print(f'Directory: {root}') for file in files: print(f' File: {os.path.join(root, file)}') for dir in dirs: print(f' Subdirectory: {os.path.join(root, dir)}') list_files_and_dirs('.')
这段代码会遍历当前工作目录及其子目录下的所有文件和目录,并输出相应的信息。
需要注意的是,os.walk()只会遍历当前目录及其子目录下的文件和目录,不会遍历符号链接所指向的文件或目录。如果需要遍历符号链接所指向的文件或目录,需要设置followlinks=True。
以上是Python的OS模組的使用方法及範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Stock Market GPT
人工智慧支援投資研究,做出更明智的決策

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

運行pipinstall-rrequirements.txt可安裝依賴包,建議先創建並激活虛擬環境以避免衝突,確保文件路徑正確且pip已更新,必要時使用--no-deps或--user等選項調整安裝行為。

Pytest是Python中簡單強大的測試工具,安裝後按命名規則自動發現測試文件。編寫以test_開頭的函數進行斷言測試,使用@pytest.fixture創建可複用的測試數據,通過pytest.raises驗證異常,支持運行指定測試和多種命令行選項,提升測試效率。

theargparsemodulestherecommondedwaywaytohandlecommand-lineargumentsInpython,提供式刺激,typeValidation,helpmessages anderrornhandling; useSudys.argvforsimplecasesRequeRequeRingminimalSetup。

目錄什麼是比特幣改進提案(BIP)?為什麼BIP如此重要?比特幣改進提案(BIP)的歷史BIP流程如何運作? BIP類型什麼是信號以及礦工如何發出信號? Taproot快速試用BIP的利與弊結語自2011年以來,對比特幣的任何改進都通過稱為比特幣改進提案或“BIP”的系統進行。比特幣改進提案(BIP)為比特幣如何發展提供了指導方針一般來說,BIP有三種可能的類型,其中兩種與比特幣的技術變革有關每個BIP都是從比特幣開發者之間的非正式討論開始的,他們可以在任何地方聚集,包括Twi

對於數據科學的初學者而言,從“毫無經驗”到“行業專家”的躍遷之路,其核心就是不斷地實踐。而實踐的基礎,正是豐富多樣的數據集。幸運的是,網絡上有大量提供免費公共數據集的網站,它們是提陞技能、磨練技術的寶貴資源。

Import@contextmanagerfromcontextlibanddefineageneratorfunctionthatyieldsexactlyonce,wherecodebeforeyieldactsasenterandcodeafteryield(preferablyinfinally)actsas__exit__.2.Usethefunctioninawithstatement,wheretheyieldedvalueisaccessibleviaas,andthesetup

大數據分析需側重多核CPU、大容量內存及分層存儲。首選多核處理器如AMDEPYC或RyzenThreadripper,兼顧核心數量與單核性能;內存建議64GB起步,優先選用ECC內存保障數據完整性;存儲采用NVMeSSD(系統與熱數據)、SATASSD(常用數據)和HDD(冷數據)組合,提升整體處理效率。

Identifyrepetitivetasksworthautomating,suchasorganizingfilesorsendingemails,focusingonthosethatoccurfrequentlyandtakesignificanttime.2.UseappropriatePythonlibrarieslikeos,shutil,glob,smtplib,requests,BeautifulSoup,andseleniumforfileoperations,email,w
