python---os模塊使用詳解

  相關方法或屬性:python

    getcwd() --- 獲取當前的操做目錄,等同於linux中的pwd命令。linux

      調用:os.getcwd()android

    chdir() --- 改變python腳本的工做目錄。git

      調用:os.chdir(path) (path以字符串形式傳入)windows

      例如:ide

>>> os.getcwd()
'C:\\Users\\BLUE'
>>> os.chdir('D:\\Program Files')
>>> os.getcwd()
'D:\\Program Files'
>>> os.chdir(r'C:\Users\BLUE')
>>> os.getcwd()
'C:\\Users\\BLUE'

    curdir --- 當前目錄   使用:os.curdirui

    pardir --- 當前目錄的父目錄   使用: os.pardirspa

      例如:code

>>> os.curdir
'.'
>>> os.pardir
'..'
>>> os.getcwd()
'C:\\Users\\BLUE'
>>> os.chdir(os.pardir)
>>> os.getcwd()
'C:\\Users'

    makedirs() --- 遞歸的建立目錄。orm

      調用:os.makedirs('dir_1/dir_2/dir_3/.../dir_n')

      例如:os.makedirs(r'C:\a\b\c\d')  #該操做會依次在C盤下建立a, b, c, d四個文件夾(若a目錄存在則只建立b,c,d三個目錄)。

    removedirs() --- 若當前目錄爲空則刪除,並切換到父級目錄,若爲空繼續刪除,依次遞歸。

      調用:os.removedirs('dir_1/dir_2/dir_3/.../dir_n')

      例如:os.removedirs(r'C:\a\b\c\d')  #該操做會依次在C盤下依次刪除d, c, b, a四個文件夾,若是中間某一級目錄不爲空,則在該級中止刪除。

    mkdir() --- 建立單級目錄。

      調用:os.mkdir('dir_1/dir_2/dir_3/.../dir_n')

      例如:os.mkdir(r'C:\a\b\c\d')  #該操做會在C盤下建立d文件夾(若a, b, c目錄有一個不存在,則沒法建立並報錯)。

    rmdir() --- 刪除單級空目錄。

      調用:os.rmdir('dir_1/dir_2/dir_3/.../dir_n')

      例如:os.rmdir(r'C:\a\b\c\d')  #若d目錄爲空,該操做只刪除d目錄, 不然沒法刪除並報錯。

    listdir() --- 以列表的形式列出制定目錄下的全部文件(包括隱藏文件),子目錄。

      調用:os.listdir(path)

      例如:(列出D盤下的全部文件)

>>> os.listdir(r'D:')
['Anaconda3', 'BaiduNetdisk', 'BHO', 'Data', 'guiminer', 'Intel', 'JetBrains', 'Profiles', 'Program', 'Tencent', 'Thunder', 'Thunder BHO Platform', 'UninstallXLWFP.exe', 'WinRAR', '騰訊遊戲']

    remove() --- 刪除一個文件。

      調用:os.remove(path)

    rename() --- 對一個文件重命名。

      調用:os.rename(old_filename, new_filename)  #注意不能覆蓋已存在文件

    stat() --- 獲取文件或目錄的屬性信息。

      調用:os.stat(path)

      例如:

>>> os.stat(r'C:\Windows\regedit.exe')
os.stat_result(st_mode=33279, st_ino=281474976742063, st_dev=1893840342, st_nlink=2, st_uid=0, st_gid=0, st_size=321024, st_atime=1489870628, st_mtime=1489870628, st_ctime=1489870628)
>>> os.stat(r'C:\Windows')
os.stat_result(st_mode=16895, st_ino=281474976712108, st_dev=1893840342, st_nlink=1, st_uid=0, st_gid=0, st_size=32768, st_atime=1502900732, st_mtime=1502900732, st_ctime=1489837220)

    sep --- 使用os.sep獲取當前平臺的路徑的分隔符(目錄與子目錄之間)(例如windows下是r‘\’,Linux下時‘/’)。

    linesep --- 使用os.linesep獲取當前平臺的換行符(例如windows下是‘\r\n’,Linux下時‘\n’)。

    pathsep --- 使用os.pathsep獲取當前平臺文件路徑的分隔符(文件之間)(例如windows下是‘;’,Linux下時‘:’)。

    name --- 使用os.name獲取當前平臺名稱。

      例如:

>>> os.sep
'\\'
>>> os.linesep
'\r\n'
>>> os.pathsep
';'
>>> os.name
'nt'

    system() --- 執行系統命令。

      調用:os.system(command)

      例如:

>>> os.system('ping www.baidu.com')

正在 Ping www.A.sHiFeN.com [220.181.112.244] 具備 32 字節的數據:
來自 220.181.112.244 的回覆: 字節=32 時間=38ms TTL=55
來自 220.181.112.244 的回覆: 字節=32 時間=38ms TTL=55
來自 220.181.112.244 的回覆: 字節=32 時間=38ms TTL=55
來自 220.181.112.244 的回覆: 字節=32 時間=37ms TTL=55

220.181.112.244 的 Ping 統計信息:
    數據包: 已發送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計時間(以毫秒爲單位):
    最短 = 37ms,最長 = 38ms,平均 = 37ms

    environ --- 使用os.environ獲取系統環境變量。

      例如:

>>> os.environ
environ({'COMPUTERNAME': 'DESKTOP-KTUG9G5', 'APPDATA': 'C:\\Users\\BLUE\\AppData\\Roaming', 'USERDOMAIN_ROAMINGPROFILE': 'DESKTOP-KTUG9G5', 'HOMEPATH': '\\Users\\BLUE', 'NUMBER_OF_PROCESSORS': '8', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC', 'ONEDRIVE': 'C:\\Users\\BLUE\\OneDrive', 'LOGONSERVER': '\\\\DESKTOP-KTUG9G5', 'OS': 'Windows_NT', 'TEMP': 'C:\\Users\\BLUE\\AppData\\Local\\Temp', 'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files', 'PROGRAMDATA': 'C:\\ProgramData', 'PROMPT': '$P$G', 'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files', 'PROCESSOR_IDENTIFIER': 'Intel64 Family 6 Model 60 Stepping 3, GenuineIntel', 'LOCALAPPDATA': 'C:\\Users\\BLUE\\AppData\\Local', 'USERNAME': 'BLUE', 'PROCESSOR_REVISION': '3c03', 'PROGRAMFILES': 'C:\\Program Files', 'PROGRAMW6432': 'C:\\Program Files', 'WINDIR': 'C:\\Windows', 'PUBLIC': 'C:\\Users\\Public', 'ASL.LOG': 'Destination=file', 'PSMODULEPATH': 'C:\\Program Files\\WindowsPowerShell\\Modules;C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\Modules', 'PROCESSOR_LEVEL': '6', 'SYSTEMROOT': 'C:\\Windows', 'SESSIONNAME': 'Console', 'ALLUSERSPROFILE': 'C:\\ProgramData', 'SYSTEMDRIVE': 'C:', 'COMSPEC': 'C:\\Windows\\system32\\cmd.exe', 'PROGRAMFILES(X86)': 'C:\\Program Files (x86)', 'PROCESSOR_ARCHITECTURE': 'AMD64', 'HOMEDRIVE': 'C:', 'TMP': 'C:\\Users\\BLUE\\AppData\\Local\\Temp', 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files', 'PATH': 'D:\\Program Files\\Anaconda3\\Library\\bin;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;D:\\Program Files\\Anaconda3;D:\\Program Files\\Anaconda3\\Scripts;D:\\Program Files\\Anaconda3\\Library\\bin;C:\\Users\\BLUE\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\BLUE\\AppData\\Local\\GitHubDesktop\\bin', 'USERDOMAIN': 'DESKTOP-KTUG9G5', 'USERPROFILE': 'C:\\Users\\BLUE'})

    path.abspath() --- 獲取文件的絕對路徑

      調用:os.path.abspath(filename)

      例如:

>>> os.chdir(r'C:\windows')
>>> os.path.abspath('regedit.exe')
'C:\\windows\\regedit.exe'

    path.split() --- 傳入一個文件路徑,返回一個tuple(由兩部分構成(path, filename))。

      調用:os.path.split(path)

      例如:

    path.dirname() --- 獲取路徑中的目錄。

      調用:os.path.dirname(path)

    path.basename() --- 獲取路徑中的文件名。

      調用:os.path.basename(path)

>>> os.path.dirname(r'C:\Windows\System32\drivers\etc\hosts')
'C:\\Windows\\System32\\drivers\\etc'
>>> os.path.basename(r'C:\Windows\System32\drivers\etc\hosts')
'hosts'
>>> os.path.split(r'C:\Windows\System32\drivers\etc\hosts')
('C:\\Windows\\System32\\drivers\\etc', 'hosts')

    path.exists() --- 判斷路徑是否存在。

      調用:os.path.exists(path)

    path.isabs() --- 判斷路徑是不是絕對路徑。

      調用:os.path.isabs(path)

    path.isfile() --- 判斷是不是文件。

      調用:os.path.isfile(path)

    path.isdir() --- 判斷是不是目錄。

      調用:os.path.isdir(path)

      例如:

>>> os.path.exists(r'C:\Windows\System32\drivers\etc\hosts')
True
>>> os.path.exists(r'C:\Windows\System32\drivers\etc\abcd')
False
>>> os.path.isabs(r'C:\Windows\System32\drivers\etc\hosts')
True
>>> os.path.isabs(r'../')
False
>>> os.path.isfile('C:\Windows\System32\drivers\etc\hosts')
True
>>> os.path.isfile('C:\Windows\System32\drivers\etc')
False
>>> os.path.isdir('C:\Windows\System32\drivers\etc')
True
>>> os.path.isdir('C:\Windows\System32\drivers\etc\hosts')
False

    path.join() --- 將一個或多個路徑正確地鏈接起來。

      調用:os.path.join(path, *paths)

    path.getatime() --- 獲取文件最後的訪問時間(以時間戳的形式返回)。

      調用:os.path.getatime(path)

    path.getmtime() --- 獲取文件最後的修改時間(以時間戳的形式返回)。

      調用:os.path.getmtime(path)

      例如:

>>> os.path.join('C:', r'\windows\System32', r'\System32\drivers')
'C:\\System32\\drivers'
>>> os.path.join('C:', r'\windows\System32')
'C:\\windows\\System32'
>>> os.path.getatime('C:\Windows\System32\drivers\etc\hosts')
1501070798.585747
>>> os.path.getmtime('C:\Windows\System32\drivers\etc\hosts')
1502505489.0068946

    popen()  ---   打開到命令cmd的管道。返回值是鏈接到管道的打開文件對象,根據mode是'r'(默認)仍是'w'    

      調用:os.popen(cmd, mode="r", buffering=-1)    #通常後兩個參數默認便可

>>> import os
>>> f = os.popen("dir")
>>> content = f.read()
>>> print(content)
 驅動器 C 中的卷沒有標籤。
 卷的序列號是 70E1-B5D6

 C:\Users\BLUE 的目錄

2017/10/06  17:11    <DIR>          .
2017/10/06  17:11    <DIR>          ..
2017/07/28  15:55    <DIR>          .android
2017/07/30  12:44    <DIR>          .astropy
2017/08/06  13:58    <DIR>          .conda
2017/08/07  22:05                80 .gitconfig
2017/07/30  13:07    <DIR>          .ipython
2017/07/30  12:52    <DIR>          .matplotlib
2017/07/30  12:34    <DIR>          .PyCharm2017.1
2017/10/07  14:08    <DIR>          .VirtualBox
2017/07/26  20:51    <DIR>          AppData
2017/09/17  10:10    <DIR>          Contacts
2017/09/28  20:35    <DIR>          Desktop
2017/10/06  18:25    <DIR>          Documents
2017/10/06  18:41    <DIR>          Downloads
2017/09/17  10:10    <DIR>          Favorites
2017/09/27  12:59    <DIR>          Links
2017/09/17  10:10    <DIR>          Music
2017/09/27  12:59    <DIR>          OneDrive
2017/09/17  10:10    <DIR>          Pictures
2017/09/17  10:10    <DIR>          Saved Games
2017/09/17  10:10    <DIR>          Searches
2017/10/07  15:46    <DIR>          Videos
               1 個文件             80 字節
              22 個目錄 61,312,913,408 可用字節
相關文章
相關標籤/搜索