OS(operating system)直接對操做系統進行操做的接口,功能真是很是強大;容許知識追尋者簡要歸納一下總體模塊html
os.open(
)方法os.path
模塊fileinput
模塊tempfile
模塊shutil
模塊知識的體系很重要,好比不少書籍文章只知如何使用OS對路徑進行操做,但總體的OS是什麼,包含哪些模塊都沒有介紹。本文的重點是對path進行操做,參和一些os經常使用函數,結合以前文件操做的專題能夠達到很好的效果;python
函數名 | 函數說明 |
---|---|
os.getcwd() | 返回工做目錄 |
os.path.abspath(path) | 返回絕對路徑 |
os.path.basename(path) | 返回基本名 |
os.path.commonpath(paths) | 返回全部路徑中共同的最長的子路徑 |
os.path.commonprefix(list) | 返回全部路徑中共同的前綴 |
os.path.dirname(path) | 返回當前文件所在的目錄 |
os.path.exists(path) | 斷定目錄是否存在,存在返回True, 不然False |
os.path.getatime(path) | 返回上一次進入路徑的時間 |
os.path.getmtime(path) | 返回上一次路徑修改的時間 |
os.path.getctime(path) | unix返回元數據修改時間,windows返回路徑建立時間 |
os.path.getsize(path) | 返回路徑的大小,單位字節 |
os.path.isabs(path) | 斷定是不是絕對路徑,是返回True,不然False |
os.path.isfile(path) | 斷定是不是文件,是返回True,不然False |
os.path.isdir(path) | 斷定是不是目錄,是返回True,不然False |
os.path.islink(path) | 是不是連接文件,是返回True,不然False |
os.path.join(path, *paths) | 路徑拼接 |
os.path.normcase(path) | windows平臺路徑字母所有轉爲小寫,若是存在斜杆會轉爲反斜槓 |
os.path.relpath(path, start=os.curdir) | 返回與start比較後的相對路徑 |
os.path.split(path) | 以基本名爲基準切割路徑 |
os.makedirs() | 建立文件夾 |
獲取當前工做目錄windows
# -*- coding: utf-8 -*- import os """ 獲取當前工做 """ print(os.getcwd())
輸出:函數
C:\python_work\study_py_base\base\fileopration
返回絕對路徑,. 號表示當前目錄spa
# -*- coding: utf-8 -*- import os """ 返回絕對路徑 """ print(os.path.abspath("."))
輸出:操作系統
C:\python_work\study_py_base\base\fileopration
返回基本名,基本名也就是文件的簡單名稱好比 zszxz.txt;命令行
# -*- coding: utf-8 -*- import os """返回基本名""" print(os.path.basename("C:\python_work\study_py_base\base\fileopration\os_op.py"))
輸出:unix
os_op.py
返回共同的路徑,最大長度返回;code
# -*- coding: utf-8 -*- import os """ 返回共同的路徑 """ print(os.path.commonpath(['/usr/var/lib','/usr/lib']))
返回結果:orm
\usr
返回路徑的共同前綴。注意,前綴跟3.4節的共同路徑是不一樣的東西;
# -*- coding: utf-8 -*- import os """ 返回路徑共同前綴 """ print(os.path.commonprefix(['/usr/var/lib','/usr/lib']))
返回結果:
/usr/
返回目錄,lib的目錄是/usr/var
# -*- coding: utf-8 -*- import os """ 返回目錄 """ print(os.path.dirname('/usr/var/lib'))
輸出:
/usr/var
斷定目錄是否存在,存在返回True, 不然False
# -*- coding: utf-8 -*- import os """斷定路徑是否存在""" print(os.path.exists('/usr/var/lib')) print(os.path.exists('C:\python_work'))
輸出:
False True
返回上一次進入路徑的時間
# -*- coding: utf-8 -*- import os print(os.path.getatime('C:\python_work'))
輸出:
1578921313.4634616
返回上一次路徑修改的時間
# -*- coding: utf-8 -*- import os """返回上一次路徑修改的時間""" print(os.path.getmtime('C:\python_work'))
輸出:
1578921313.4634616
unix返回元數據修改時間,windows返回路徑建立時間
# -*- coding: utf-8 -*- import os """unix返回元數據修改時間,windows返回路徑建立時間""" print(os.path.getctime('C:\python_work'))
輸出:
1577777602.8199444
返回路徑的大小,單位字節;
# -*- coding: utf-8 -*- import os """返回路徑的大小,單位字節;""" print(os.path.getsize('.'))
輸出:
4096
斷定是不是絕對路徑,是返回True,不然False
# -*- coding: utf-8 -*- import os """ 斷定是不是絕對路徑""" print(os.path.isabs('.')) print(os.path.isabs('C:\python_work'))
輸出:
False True
斷定是不是文件,是返回True,不然False
# -*- coding: utf-8 -*- import os """ 斷定是不是文件 """ print(os.path.isfile('os_op.py')) print(os.path.isfile('.'))
輸出
True False
斷定是不是目錄,是返回True,不然False
# -*- coding: utf-8 -*- import os print(os.path.isdir('os_op.py')) print(os.path.isdir('.'))
輸出:
False True
是不是連接文件,是返回True,不然False, 須要被python運行時環境所支持,不然會一直返回False
# -*- coding: utf-8 -*- import os """是不是連接文件""" print(os.path.islink('os_op.py'))
路徑拼接
# -*- coding: utf-8 -*- import os print(os.path.join('usr', 'local','bin'))
輸出
usr\local\bin
windows平臺路徑字母所有轉爲小寫,若是存在斜杆會轉爲反斜槓,其它平臺不改變
# -*- coding: utf-8 -*- import os print(os.path.normcase('/USR/Local/bin'))
輸出:
\usr\local\bin
返回與start比較後的相對路徑
# -*- coding: utf-8 -*- import os print(os.path.relpath('C:\python_work', 'C:\\'))
輸出
python_work
以基本名爲基準切割路徑
# -*- coding: utf-8 -*- import os print(os.path.split('C:\python_work\study_py_base\base\fileopration\os_op.py'))
輸出
('C:\\python_work\\study_py_base\x08ase\x0cileopration', 'os_op.py')
建立文件夾
os.makedirs('C:\mydata\generator\py')