os模組操縱檔案和目錄

2021-08-19 13:42:48 字數 2488 閱讀 3610

如果我們要操作檔案、目錄,可以在命令列下面輸入作業系統提供的各種命令來完成。比如dir、cp等命令。

如果要在python程式中執行這些目錄和檔案的操作怎麼辦?其實作業系統提供的命令只是簡單地呼叫了作業系統提供的介面函式,python內建的os模組也可以直接呼叫作業系統提供的介面函式。

開啟python互動式命令列,我們來看看如何使用os模組的基本功能:

import os

os.name # 作業系統型別

『posix』

如果是posix,說明系統是linux、unix或mac os x,如果是nt,就是windows系統。

要獲取詳細的系統資訊,可以呼叫uname()函式:

os.uname()

posix.uname_result(sysname=』darwin』, nodename=』michaelmacpro.local』, release=』14.3.0』, version=』darwin kernel version 14.3.0: mon mar 23 11:59:05 pdt 2015; root:xnu-2782.20.48~5/release_x86_64』, machine=』x86_64』)

注意uname()函式在windows上不提供,也就是說,os模組的某些函式是跟作業系統相關的。

環境變數

在作業系統中定義的環境變數,全部儲存在os.environ這個變數中,可以直接檢視:

os.environ

environ()

要獲取某個環境變數的值,可以呼叫os.environ.get(『key』):

os.environ.get(『path』)

『/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/x11/bin:/usr/local/mysql/bin』

os.environ.get(『x』, 『default』)

『default』

操作檔案和目錄

操作檔案和目錄的函式一部分放在os模組中,一部分放在os.path模組中,這一點要注意一下。檢視、建立和刪除目錄可以這麼呼叫:

os.path.abspath(『.』)

『/users/michael』

os.path.join(『/users/michael』, 『testdir』)

『/users/michael/testdir』

os.mkdir(『/users/michael/testdir』)

os.rmdir(『/users/michael/testdir』)

把兩個路徑合成乙個時,不要直接拼字串,而要通過os.path.join()函式,這樣可以正確處理不同作業系統的路徑分隔符。在linux/unix/mac下,os.path.join()返回這樣的字串:

part-1/part-2

而windows下會返回這樣的字串:

part-1\part-2

同樣的道理,要拆分路徑時,也不要直接去拆字串,而要通過os.path.split()函式,這樣可以把乙個路徑拆分為兩部分,後一部分總是最後級別的目錄或檔名:

os.path.split(『/users/michael/testdir/file.txt』)

(『/users/michael/testdir』, 『file.txt』)

os.path.splitext()可以直接讓你得到副檔名,很多時候非常方便:

os.path.splitext(『/path/to/file.txt』)

(『/path/to/file』, 『.txt』)

這些合併、拆分路徑的函式並不要求目錄和檔案要真實存在,它們只對字串進行操作。

檔案操作使用下面的函式。假定當前目錄下有乙個test.txt檔案:

os.rename(『test.txt』, 『test.py』)

os.remove(『test.py』)

但是複製檔案的函式居然在os模組中不存在!原因是複製檔案並非由作業系統提供的系統呼叫。理論上講,我們通過上一節的讀寫檔案可以完成檔案複製,只不過要多寫很多**。

幸運的是shutil模組提供了copyfile()的函式,你還可以在shutil模組中找到很多實用函式,它們可以看做是os模組的補充。

最後看看如何利用python的特性來過濾檔案。比如我們要列出當前目錄下的所有目錄,只需要一行**:

Python筆記 os模組的檔案和目錄函式

1.與目錄相關的函式 直接在當前目錄下建立子目錄 os.mkdir abc 0o755 遞迴建立目錄 path abd xyz wawa os.makedirs path,0o755 import os 刪除當前目錄下的子目錄 os.rmdir abc 遞迴刪除目錄,從最裡層開始遞迴刪除 path ...

python中OS模組操作檔案和目錄

在python中執行和操作目錄和檔案的操作是通過內建的python os模組封裝的函式實現的。首先匯入模組,並檢視作業系統的型別 import osos.name 作業系統型別 nt nt,是windows posix是linux或者unix 1 對目錄和檔案的操作。os.path 檢視當前工作路徑...

檔案OS模組

檔案os模組 開啟檔案open file open file name路徑,訪問模式 r 以唯讀的方式開啟 rb 以二進位制的方式開啟乙個檔案用於唯讀 w 開啟乙個檔案只用於寫入 a 追加 在當前路徑下建立乙個文字檔案 file1 open 1.txt w 注意 對檔案操作完後,一定要記得關閉檔案,...