python 常用模組 os (學習筆記四)
阿新 • • 發佈:2019-01-04
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'