1. 程式人生 > >python 常用模組 os (學習筆記四)

python 常用模組 os (學習筆記四)

os

python作業系統介面

版本:python3.6 官方文件

os模組的常用功能:

os.name              顯示當前使用的平臺

>>> import os
>>> os.name
'nt'                # 表示Windows
>>> os.name
'posix'             # 表示Linux

os.getcwd()            顯示當前python指令碼工作路徑

>>> os.getcwd()
'E:\\workspace\\projectSpace'

os.listdir('dirname')        返回指定目錄下的所有檔案和目錄名

>>> os.listdir(os.getcwd())
['.git', 'test1', 'test2', 'test.txt']

>>> os.listdir()
['.git', 'test1', 'test2', 'test.txt']

os.remove('filename')       刪除一個檔案

>>> os.remove('test.txt')
>>> os.listdir(os.getcwd())
['.git', 'test1', 'test2']

os.makedirs('dirname/dirname')     可生成多層遞規目錄

>>> os.makedirs('demo/test.txt')
>>> os.listdir('demo')
['test.txt']

os.rmdir('dirname')     刪除單級目錄

>>> os.makedirs('demo1')
>>> os.listdir()
['.git', 'demo', 'demo1']
>>> os.rmdir('demo1')
>>> os.listdir()
['.git', 'demo']

os.rename("oldname","newname")    重新命名檔案

>>> os.rename('demo/test.txt', 'demo/change.txt')
>>> os.listdir('demo')
['change.txt']

os.system()    執行shell命令,注意:這裡是開啟一個新的shell,執行命令,當命令結束後,關閉shell

# windows 10
>>> os.system('dir')            # 執行命令
 驅動器 E 中的卷沒有標籤。
 卷的序列號是 78CC-3B97

 E:\workspace\projectSpace 的目錄

2018/11/28  11:10    <DIR>          .
2018/11/28  11:10    <DIR>          ..
2018/11/28  11:12    <DIR>          demo
               0 個檔案              0 位元組
               3 個目錄 22,123,225,088 可用位元組


# ubuntu
>>> os.system('pwd')
/root/miracle
0

os.sep    顯示當前平臺下路徑分隔符

>>> os.sep
'/'               #linux

>>> os.sep
'\\'             #windows

os.linesep    給出當前平臺使用的行終止符

>>> os.linesep
'\n'      #linux

>>> os.linesep
'\r\n'    #windows

os.environ    獲取系統環境變數

>>> os.environ
environ({'ALLUSERSPROFILE': 'C:\\ProgramData', 'APPDATA': 'C:\\Users\\Miracle\\AppData\\Roaming', 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files', 'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files', 'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files', 'COMPUTERNAME': 'DESKTOP-E84APLM', 'COMSPEC': 'C:\\WINDOWS\\system32\\cmd.exe', 'CONDA_DEFAULT_ENV': 'base', 'CONDA_EXE': 'C:\\ProgramData\\Anaconda3\\Scripts\\conda.exe', 'CONDA_PREFIX': 'C:\\ProgramData\\Anaconda3', 'CONDA_PROMPT_MODIFIER': '(base) ', 'CONDA_PYTHON_EXE': 'C:\\ProgramData\\Anaconda3\\python.exe', 'CONDA_SHLVL': '1', 'DRIVERDATA': 'C:\\Windows\\System32\\Drivers\\DriverData', 'FPS_BROWSER_APP_PROFILE_STRING': 'Internet Explorer', 'FPS_BROWSER_USER_PROFILE_STRING': 'Default', 'HOMEDRIVE': 'C:', 'HOMEPATH': '\\Users\\Miracle', 'LOCALAPPDATA': 'C:\\Users\\Miracle\\AppData\\Local', 'LOGONSERVER': '\\\\DESKTOP-E84APLM', 'NUMBER_OF_PROCESSORS': '8', 'ONEDRIVE': 'C:\\Users\\Miracle\\OneDrive', 'OS': 'Windows_NT', 'PATH': 'C:\\ProgramData\\Anaconda3;C:\\ProgramData\\Anaconda3\\Library\\mingw-w64\\bin;C:\\ProgramData\\Anaconda3\\Library\\usr\\bin;C:\\ProgramData\\Anaconda3\\Library\\bin;C:\\ProgramData\\Anaconda3\\Scripts;C:\\ProgramData\\Anaconda3\\bin;C:\\Python27\\;C:\\Python27\\Scripts;C:\\ProgramData\\Anaconda3;C:\\ProgramData\\Anaconda3\\Library\\mingw-w64\\bin;C:\\ProgramData\\Anaconda3\\Library\\usr\\bin;C:\\ProgramData\\Anaconda3\\Library\\bin;C:\\ProgramData\\Anaconda3\\Scripts;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files\\Git\\cmd;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Users\\Miracle\\AppData\\Local\\Microsoft\\WindowsApps;;E:\\software\\program\\tools\\Microsoft VS Code\\bin', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC', 'PROCESSOR_ARCHITECTURE': 'AMD64', 'PROCESSOR_IDENTIFIER': 'Intel64 Family 6 Model 142 Stepping 10, GenuineIntel', 'PROCESSOR_LEVEL': '6', 'PROCESSOR_REVISION': '8e0a', 'PROGRAMDATA': 'C:\\ProgramData', 'PROGRAMFILES': 'C:\\Program Files', 'PROGRAMFILES(X86)': 'C:\\Program Files (x86)', 'PROGRAMW6432': 'C:\\Program Files', 'PROMPT': '(base) $P$G', 'PSMODULEPATH': 'C:\\Program Files\\WindowsPowerShell\\Modules;C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\Modules', 'PUBLIC': 'C:\\Users\\Public', 'PYTHONIOENCODING': '936', 'SESSIONNAME': 'Console', 'SYSTEMDRIVE': 'C:', 'SYSTEMROOT': 'C:\\WINDOWS', 'TEMP': 'C:\\Users\\Miracle\\AppData\\Local\\Temp', 'TMP': 'C:\\Users\\Miracle\\AppData\\Local\\Temp', 'USERDOMAIN': 'DESKTOP-E84APLM', 'USERDOMAIN_ROAMINGPROFILE': 'DESKTOP-E84APLM', 'USERNAME': 'Miracle', 'USERPROFILE': 'C:\\Users\\Miracle', 'WINDIR': 'C:\\WINDOWS'})
>>>

os.path.abspath(path)    顯示當前絕對路徑

>>> os.path.abspath('demo')
'E:\\workspace\\projectSpace\\demo'

os.path.dirname(path)    返回該路徑的父目錄

>>> os.path.dirname(os.path.abspath('demo'))
'E:\\workspace\\projectSpace'

os.path.basename(path)    返回該路徑的最後一個目錄或者檔案,如果path以/或\結尾,那麼就會返回空值。

>>> os.path.basename(os.path.dirname(os.path.abspath('demo')))
'projectSpace'

os.path.isfile(path)     如果path是一個檔案,則返回True

>>> os.path.isfile('demo')    # demo是個資料夾
False

os.path.isdir(path)    如果path是一個目錄,則返回True

>>> os.path.isdir('demo')
True

os.stat()    獲取檔案或者目錄資訊

>>> os.stat('demo')
os.stat_result(st_mode=16895, st_ino=4222124650869933, st_dev=2026650519, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1543374753, st_mtime=1543374753, st_ctime=1543374414)
>>> os.stat('demo/change.txt')
os.stat_result(st_mode=16895, st_ino=10696049115215086, st_dev=2026650519, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1543374414, st_mtime=1543374414, st_ctime=1543374414)

os.path.split(path)  將path分割成路徑名和檔名。(事實上,如果你完全使用目錄,它也會將最後一個目錄作為檔名而分離,同時它不會判斷檔案或目錄是否存在)

>>> os.path.split('demo/change.txt')
('demo', 'change.txt')

os.path.join(path,name)   連線目錄與檔名或目錄 結果為path/name

>>> os.path.join('demo','test.txt')
'demo\\test.txt'