python專題知識追尋者對OS的理解

一 前言

OS(operating system)直接對操做系統進行操做的接口,功能真是很是強大;容許知識追尋者簡要歸納一下總體模塊html

  1. 若是要對文件進行讀寫可使用os.open()方法
  2. 若是要對文件路徑進行操做可使用os.path模塊
  3. 若是要對全部文件的全部行讀取到命令行進行操做可使用fileinput模塊
  4. 若是要建立臨時文件可使用tempfile模塊
  5. 若是要對高級文件或者目錄進行處理可使用shutil模塊

知識的體系很重要,好比不少書籍文章只知如何使用OS對路徑進行操做,但總體的OS是什麼,包含哪些模塊都沒有介紹。本文的重點是對path進行操做,參和一些os經常使用函數,結合以前文件操做的專題能夠達到很好的效果;python

二 OS經常使用函數介紹

函數名 函數說明
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() 建立文件夾

三 函數具體操做

3.1 os.getcwd()

獲取當前工做目錄windows

# -*- coding: utf-8 -*-
import os

""" 獲取當前工做 """
print(os.getcwd())

輸出:函數

C:\python_work\study_py_base\base\fileopration

3.2os.path.abspath(path)

返回絕對路徑,. 號表示當前目錄spa

# -*- coding: utf-8 -*-
import os

""" 返回絕對路徑 """
print(os.path.abspath("."))

輸出:操作系統

C:\python_work\study_py_base\base\fileopration

3.3 os.path.basename(path)

返回基本名,基本名也就是文件的簡單名稱好比 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

3.4os.path.commonpath(paths)

返回共同的路徑,最大長度返回;code

# -*- coding: utf-8 -*-
import os

""" 返回共同的路徑 """
print(os.path.commonpath(['/usr/var/lib','/usr/lib']))

返回結果:orm

\usr

3.5os.path.commonprefix(list)

返回路徑的共同前綴。注意,前綴跟3.4節的共同路徑是不一樣的東西;

# -*- coding: utf-8 -*-
import os

""" 返回路徑共同前綴  """
print(os.path.commonprefix(['/usr/var/lib','/usr/lib']))

返回結果:

/usr/

3.6 os.path.dirname(path)

返回目錄,lib的目錄是/usr/var

# -*- coding: utf-8 -*-
import os

""" 返回目錄 """
print(os.path.dirname('/usr/var/lib'))

輸出:

/usr/var

3.7 os.path.exists(path)

斷定目錄是否存在,存在返回True, 不然False

# -*- coding: utf-8 -*-
import os

"""斷定路徑是否存在"""
print(os.path.exists('/usr/var/lib'))
print(os.path.exists('C:\python_work'))

輸出:

False
True

3.8 os.path.getatime(path)

返回上一次進入路徑的時間

# -*- coding: utf-8 -*-
import os

print(os.path.getatime('C:\python_work'))

輸出:

1578921313.4634616

3.9 os.path.getmtime(path)

返回上一次路徑修改的時間

# -*- coding: utf-8 -*-
import os

"""返回上一次路徑修改的時間"""
print(os.path.getmtime('C:\python_work'))

輸出:

1578921313.4634616

3.10 os.path.getctime(path)

unix返回元數據修改時間,windows返回路徑建立時間

# -*- coding: utf-8 -*-
import os

"""unix返回元數據修改時間,windows返回路徑建立時間"""
print(os.path.getctime('C:\python_work'))

輸出:

1577777602.8199444

3.11 os.path.getsize(path)

返回路徑的大小,單位字節;

# -*- coding: utf-8 -*-
import os

"""返回路徑的大小,單位字節;"""
print(os.path.getsize('.'))

輸出:

4096

3.12 os.path.isabs(path)

斷定是不是絕對路徑,是返回True,不然False

# -*- coding: utf-8 -*-
import os

""" 斷定是不是絕對路徑"""
print(os.path.isabs('.'))
print(os.path.isabs('C:\python_work'))

輸出:

False
True

3.13 os.path.isfile(path)

斷定是不是文件,是返回True,不然False

# -*- coding: utf-8 -*-
import os

""" 斷定是不是文件 """
print(os.path.isfile('os_op.py'))
print(os.path.isfile('.'))

輸出

True
False

3.14 os.path.isdir(path)

斷定是不是目錄,是返回True,不然False

# -*- coding: utf-8 -*-
import os
print(os.path.isdir('os_op.py'))
print(os.path.isdir('.'))

輸出:

False
True

3.15 os.path.islink(path)

是不是連接文件,是返回True,不然False, 須要被python運行時環境所支持,不然會一直返回False

# -*- coding: utf-8 -*-
import os

"""是不是連接文件"""
print(os.path.islink('os_op.py'))

3.16 os.path.join(path, *paths)

路徑拼接

# -*- coding: utf-8 -*-
import os

print(os.path.join('usr', 'local','bin'))

輸出

usr\local\bin

3.17 os.path.normcase(path)

windows平臺路徑字母所有轉爲小寫,若是存在斜杆會轉爲反斜槓,其它平臺不改變

# -*- coding: utf-8 -*-
import os
print(os.path.normcase('/USR/Local/bin'))

輸出:

\usr\local\bin

3.18 os.path.relpath(path, start=os.curdir)

返回與start比較後的相對路徑

# -*- coding: utf-8 -*-
import os
print(os.path.relpath('C:\python_work', 'C:\\'))

輸出

python_work

3.19 os.path.split(path)

以基本名爲基準切割路徑

# -*- 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')

3.20 os.makedirs()

建立文件夾

os.makedirs('C:\mydata\generator\py')
相關文章
相關標籤/搜索