天天看點

Python Module_os_作業系統目錄前言軟體環境os子產品内建屬性os子產品内建方法

<a href="#%E7%9B%AE%E5%BD%95">目錄</a>

<a href="#%E5%89%8D%E8%A8%80">前言</a>

<a href="#%E8%BD%AF%E4%BB%B6%E7%8E%AF%E5%A2%83">軟體環境</a>

<a href="#os%E6%A8%A1%E5%9D%97%E5%86%85%E5%BB%BA%E5%B1%9E%E6%80%A7">os子產品内建屬性</a>

<a href="#osname-%E8%8E%B7%E5%8F%96%E6%89%A7%E8%A1%8C%E5%B9%B3%E5%8F%B0%E7%9A%84%E7%B1%BB%E5%9E%8B">osname 擷取執行平台的類型</a>

<a href="#oslinesep-%E8%BE%93%E5%87%BA%E5%BD%93%E5%89%8D%E5%B9%B3%E5%8F%B0%E4%BD%BF%E7%94%A8%E7%9A%84%E8%A1%8C%E7%BB%88%E6%AD%A2%E7%AC%A6">oslinesep 輸出目前平台使用的行終止符</a>

<a href="#ossep-%E8%BE%93%E5%87%BA%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E7%89%B9%E5%AE%9A%E7%9A%84%E8%B7%AF%E5%BE%84%E5%88%86%E9%9A%94%E7%AC%A6">ossep 輸出作業系統特定的路徑分隔符</a>

<a href="#ospathsep-%E8%BE%93%E5%87%BA%E7%94%A8%E4%BA%8E%E5%88%86%E5%89%B2%E6%96%87%E4%BB%B6%E8%B7%AF%E5%BE%84%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2">ospathsep 輸出用于分割檔案路徑的字元串</a>

<a href="#other">Other</a>

<a href="#os%E6%A8%A1%E5%9D%97%E5%86%85%E5%BB%BA%E6%96%B9%E6%B3%95">os子產品内建方法</a>

<a href="#%E6%96%87%E4%BB%B6%E6%88%96%E7%9B%AE%E5%BD%95%E7%9A%84%E8%B7%AF%E5%BE%84%E6%93%8D%E4%BD%9C%E6%96%B9%E6%B3%95">檔案或目錄的路徑操作方法</a>

<a href="#osgetcwd-%E8%8E%B7%E5%8F%96%E5%BD%93%E5%89%8D%E5%B7%A5%E4%BD%9C%E7%9B%AE%E5%BD%95">osgetcwd 擷取目前工作目錄</a>

<a href="#ospathexists-%E5%88%A4%E6%96%AD%E4%B8%80%E4%B8%AA%E8%B7%AF%E5%BE%84%E6%98%AF%E5%90%A6%E5%AD%98%E5%9C%A8">ospathexists 判斷一個路徑是否存在</a>

<a href="#ospathisfile-%E5%88%A4%E6%96%AD%E6%8C%87%E5%AE%9A%E5%AF%B9%E8%B1%A1%E6%98%AF%E5%90%A6%E4%B8%BA%E6%96%87%E4%BB%B6">ospathisfile 判斷指定對象是否為檔案</a>

<a href="#ospathisdir-%E5%88%A4%E6%96%AD%E6%8C%87%E5%AE%9A%E5%AF%B9%E8%B1%A1%E6%98%AF%E5%90%A6%E4%B8%BA%E7%9B%AE%E5%BD%95">ospathisdir 判斷指定對象是否為目錄</a>

<a href="#ospathsplit-%E5%88%86%E8%A3%82%E4%B8%8A%E5%B1%82%E7%9B%AE%E5%BD%95%E5%92%8C%E4%B8%8B%E5%B1%82%E7%9B%AE%E5%BD%95%E6%96%87%E4%BB%B6">ospathsplit 分裂上層目錄和下層目錄檔案</a>

<a href="#ospathdirnamepath-%E8%BF%94%E5%9B%9Epath%E7%9A%84%E7%9B%AE%E5%BD%95">ospathdirnamepath 傳回path的目錄</a>

<a href="#ospathbasenamepath-%E8%BF%94%E5%9B%9Epath%E6%9C%80%E5%90%8E%E7%9A%84%E6%96%87%E4%BB%B6%E7%9B%AE%E5%BD%95%E5%90%8D">ospathbasenamepath 傳回path最後的檔案目錄名</a>

<a href="#ospathjoin-%E5%90%88%E5%B9%B6%E7%9B%AE%E5%BD%95%E5%90%8D%E5%92%8C%E6%96%87%E4%BB%B6%E5%90%8D%E7%9B%AE%E5%BD%95%E5%90%8D">ospathjoin 合并目錄名和檔案名目錄名</a>

<a href="#ospathsplitext-%E5%88%86%E7%A6%BB%E6%96%87%E4%BB%B6%E5%90%8D%E5%92%8C%E6%89%A9%E5%B1%95%E5%90%8D">ospathsplitext 分離檔案名和擴充名</a>

<a href="#ospathabspath-%E8%8E%B7%E5%BE%97%E7%BB%9D%E5%AF%B9%E8%B7%AF%E5%BE%84">ospathabspath 獲得絕對路徑</a>

<a href="#%E6%96%87%E4%BB%B6%E6%88%96%E7%9B%AE%E5%BD%95%E4%BF%A1%E6%81%AF%E7%9A%84%E6%9F%A5%E8%AF%A2%E5%88%9B%E5%BB%BA%E5%88%A0%E9%99%A4%E4%BF%AE%E6%94%B9">檔案或目錄資訊的查詢建立删除修改</a>

<a href="#ospathgetsize-%E8%8E%B7%E5%BE%97%E6%96%87%E4%BB%B6%E6%88%96%E7%9B%AE%E5%BD%95%E7%9A%84%E5%A4%A7%E5%B0%8F">ospathgetsize 獲得檔案或目錄的大小</a>

<a href="#osstat-%E8%8E%B7%E5%8F%96%E6%96%87%E4%BB%B6%E7%9B%AE%E5%BD%95%E4%BF%A1%E6%81%AF">osstat 擷取檔案目錄資訊</a>

<a href="#oslistdir-%E8%8E%B7%E5%8F%96%E6%8C%87%E5%AE%9A%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84%E6%96%87%E4%BB%B6%E5%92%8C%E7%9B%AE%E5%BD%95%E5%90%8D%E5%88%97%E8%A1%A8">oslistdir 擷取指定目錄下的檔案和目錄名清單</a>

<a href="#oswalk-%E7%94%9F%E6%88%90%E4%B8%80%E4%B8%AA%E7%9B%AE%E5%BD%95%E6%A0%91%E4%B8%8B%E7%9A%84%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6%E5%90%8D">oswalk 生成一個目錄樹下的所有檔案名</a>

<a href="#ospathwalktopfuncarg-%E7%94%9F%E6%88%90%E4%B8%80%E4%B8%AA%E7%9B%AE%E5%BD%95%E6%A0%91%E4%B8%8B%E7%9A%84%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6%E5%90%8D">ospathwalktopfuncarg 生成一個目錄樹下的所有檔案名</a>

<a href="#osmkdir-%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E7%9B%AE%E5%BD%95">osmkdir 建立一個目錄</a>

<a href="#osmakedirsdirname1dirname2-%E9%80%92%E5%BD%92%E5%88%9B%E5%BB%BA%E5%A4%9A%E5%B1%82%E7%9B%AE%E5%BD%95">osmakedirsdirname1dirname2 遞歸建立多層目錄</a>

<a href="#osrmdir-%E5%88%A0%E9%99%A4%E6%8C%87%E5%AE%9A%E7%9A%84%E7%9B%AE%E5%BD%95">osrmdir 删除指定的目錄</a>

<a href="#osremovedirsdirname1-%E9%80%92%E5%BD%92%E5%88%A0%E9%99%A4%E7%9B%AE%E5%BD%95">osremovedirsdirname1 遞歸删除目錄</a>

<a href="#osremove-%E5%88%A0%E9%99%A4%E4%B8%80%E4%B8%AA%E6%96%87%E4%BB%B6">osremove 删除一個檔案</a>

<a href="#osrename-%E9%87%8D%E5%91%BD%E5%90%8D%E4%B8%80%E4%B8%AA%E6%96%87%E4%BB%B6%E6%88%96%E7%9B%AE%E5%BD%95">osrename 重命名一個檔案或目錄</a>

<a href="#oschdir-%E6%94%B9%E5%8F%98%E5%BD%93%E5%89%8D%E8%84%9A%E6%9C%AC%E5%B7%A5%E4%BD%9C%E7%9B%AE%E5%BD%95">oschdir 改變目前腳本工作目錄</a>

<a href="#%E6%89%A7%E8%A1%8C%E7%B3%BB%E7%BB%9F%E6%8C%87%E4%BB%A4%E7%9A%84%E6%96%B9%E6%B3%95">執行系統指令的方法</a>

<a href="#ossystem-%E6%89%A7%E8%A1%8Cshell%E6%8C%87%E4%BB%A4">ossystem 執行Shell指令</a>

<a href="#ospopen-%E8%BF%90%E8%A1%8Cshell%E5%91%BD%E4%BB%A4%E5%B9%B6%E7%94%9F%E6%88%90%E7%B1%BB%E6%96%87%E4%BB%B6%E5%AF%B9%E8%B1%A1">ospopen 運作shell指令并生成類檔案對象</a>

<a href="#%E4%BF%AE%E6%94%B9%E6%97%B6%E9%97%B4%E5%B1%9E%E6%80%A7%E7%9A%84%E6%96%B9%E6%B3%95">修改時間屬性的方法</a>

<a href="#osutime-%E4%BF%AE%E6%94%B9%E6%97%B6%E9%97%B4%E5%B1%9E%E6%80%A7">osutime 修改時間屬性</a>

<a href="#%E4%BF%AE%E6%94%B9%E6%96%87%E4%BB%B6%E6%88%96%E7%9B%AE%E5%BD%95%E6%9D%83%E9%99%90%E7%9A%84%E6%96%B9%E6%B3%95">修改檔案或目錄權限的方法</a>

<a href="#osaccess-%E6%9F%A5%E8%AF%A2%E6%96%87%E4%BB%B6%E6%9D%83%E9%99%90%E6%A8%A1%E5%BC%8F">osaccess 查詢檔案權限模式</a>

<a href="#oschmod-%E6%94%B9%E5%8F%98%E6%96%87%E4%BB%B6%E6%9D%83%E9%99%90%E6%A8%A1%E5%BC%8F">oschmod 改變檔案權限模式</a>

<a href="#other-1">Other</a>

系統

RHEL 7

軟體

Pyhon 27

作業系統相關子產品的名字。目前已經注冊以下的名字:’posix’、’nt’、’os2’、’ce’、’java’、’riscos’。

如果執行平台是window,則<code>os.name == "nt"</code>,如果是Linux/Unix,則<code>os.name == 'posix'</code>。

POSIX :表示可移植作業系統接口(Portable Operating System Interface ,縮寫為 POSIX ),POSIX标準定義了作業系統應該為應用程式提供的接口标準,是IEEE為要在各種UNIX作業系統上運作的軟體而定義的一系列API标準的總稱,其正式稱呼為IEEE 1003,而國際标準名稱為ISO/IEC 9945。

也稱之為換行符,windows下為”\t\n”,Linux下為”\n

目錄層之間的分隔符

os.curdir 傳回目前目錄: (‘.’)

os.pardir 擷取目前目錄的父目錄字元串名:(‘..’)

os.R_OK/os.W_OK/os.X_OK 檔案權限模式。他們的值分别是:4/2/1

os.environ 擷取系統環境變量

擷取目前工作目錄的絕對路徑。

如果path存在,傳回True;如果path不存在,傳回False。常用于在對一個檔案做操作之前的判斷依據。

是傳回True,否則False

是True,否則False。

生成一個包含兩個元素的元組。

就是os.path.split(path)的第一個元素

即os.path.split(path)的第二個元素。

注意:如何路徑以’/’或’\’結尾,就會傳回空值。

傳回一個檔案或目錄的絕對路徑,可以很友善的得到一個檔案或目錄的絕對路徑。

listdir(…)

listdir(path) -&gt; list_of_strings

Return a list containing the names of the entries in the directory.

path: path of directory to list

The list is in arbitrary order.

NOTE:It does not include the special

entries ‘.’ and ‘..’ even if they are present in the directory.

注意:路徑并不能含有’.’ or ‘..’ 。

<code>os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])</code>

1.top表示要周遊的目錄樹的路徑

2.topdown的預設值是”True”,表示首先傳回目錄樹下的檔案,然後在周遊目錄樹的子目錄.Topdown的值為”False”時,則表示先周遊目錄樹的子目錄,傳回子目錄下的檔案,最後傳回根目錄下的檔案

3.onerror的預設值是”None”,表示忽略檔案周遊時産生的錯誤。如果不為空,則提供一個自定義函數提示錯誤資訊後繼續周遊或抛出異常中止周遊

1.top表示需要周遊的目錄樹的路徑

2.func表示回調函數,對周遊路徑進行處理.所謂回調函數,是作為某個函數的參數使用,當某個時間觸發時,程式将調用定義好的回調函數處理某個任務.回調函數必須提供3個參數:第1個參數為walk()的參數tag,第2個參數表示目錄清單,第3個參數表示檔案清單

3.arg是傳遞給回調參數func的元組.回調函數的一個參數必須是arg,為回調函數提供處理參數.參數arg可以為空

注意:os.path.walk()與os.walk()産生的檔案名清單并不相同。os.path.walk()産生目錄樹下的目錄路徑和檔案路徑,而os.walk()隻産生檔案路徑

若dirname2為空,則删除,并遞歸到上一級dirname1目錄,如若也為空,則也删除,依此類推。

注意:隻能夠删除檔案,而不能删除一個目錄。

可以執行不同平台下的Shell指令,顯示執行結果并傳回執行狀态。若為Windows,則為CMD;若是Linux,則為Bash。

注意:傳回的是執行狀态,執行結果隻會顯示在終端上。

os.system(…)

os.system(command) -&gt; exit_status

Execute the command (a string) in a subshell.

生成的變量可以賦給變量,再用read()等類檔案對象内置方法讀取和操作。

一般需要結合os.R_OK/os.W_OK/os.X_OK檔案權限模式來處理。

os.path.commonprefix(list) 傳回list中,所有path共有的最長的路徑,從左向右,相同字元

os.path.abspath(path) 傳回path規範化的絕對路徑

os.path.isabs(path) 如果path是絕對路徑,傳回True

os.path.normcase(path) 在Linux下,該函數會原樣傳回path,在windows平台上會将路徑中所有字元轉換為小寫,并将所有斜杠轉換為反斜杠