Python3_模塊(一)

2021-02-20 瓜神學習網絡安全

腳本是用 python解釋器來編程,如果從 Python解釋器退出再進入,那麼你定義的所有的方法和變量就都消失了。為此 Python提供了一個辦法,把這些定義存放在文件中,為一些腳本或者交互式的解釋器實例使用,這個文件被稱為模塊。

模塊是一個包含所有你定義的函數和變量的文件,其後綴名是.py。模塊可以被別的程序引入,以使用該模塊中的函數等功能。這也是使用 python標準庫的方法。

簡單的來說,模塊,是用一段代碼實現了某個功能的代碼集合,本質上是一個py文件。

類似於函數式編程和面向過程編程,函數式編程則完成一個功能,其他代碼用來調用即可,提供了代碼的重用性和代碼間的耦合。而對於一個複雜的功能來,可能需要多個函數才能完成(函數又可以在不同的.py文件中),n個 .py 文件組成的代碼集合就稱為模塊。

如:os 是系統相關的模塊;file是文件操作相關的模塊

內置模塊:
一、os
os.remove() 刪除文件 os.unlink() 刪除文件 os.rename() 重命名文件 os.listdir() 列出指定目錄下所有文件 os.chdir() 改變當前工作目錄os.getcwd() 獲取當前文件路徑os.mkdir() 新建目錄os.rmdir() 刪除空目錄(刪除非空目錄, 使用shutil.rmtree())os.makedirs() 創建多級目錄os.removedirs() 刪除多級目錄os.stat(file) 獲取文件屬性os.chmod(file) 修改文件權限os.utime(file) 修改文件時間戳os.name(file) 獲取作業系統標識os.system() 執行作業系統命令os.execvp() 啟動一個新進程os.fork() 獲取父進程ID,在子進程返回中返回0os.execvp() 執行外部程序腳本(Uinx)os.spawn() 執行外部程序腳本(Windows)os.access(path, mode) 判斷文件權限(詳細參考cnblogs)os.wait() 暫時未知os.path模塊:os.path.split(filename) 將文件路徑和文件名分割(會將最後一個目錄作為文件名而分離)os.path.splitext(filename) 將文件路徑和文件擴展名分割成一個元組os.path.dirname(filename) 返回文件路徑的目錄部分os.path.basename(filename) 返回文件路徑的文件名部分os.path.join(dirname,basename) 將文件路徑和文件名湊成完整文件路徑os.path.abspath(name) 獲得絕對路徑os.path.splitunc(path) 把路徑分割為掛載點和文件名os.path.normpath(path) 規範path字符串形式os.path.exists() 判斷文件或目錄是否存在os.path.isabs() 如果path是絕對路徑,返回Trueos.path.realpath(path) os.path.relpath(path[, start]) os.path.normcase(path) os.path.isdir() 判斷name是不是一個目錄,name不是目錄就返回falseos.path.isfile() 判斷name是不是一個文件,不存在返回falseos.path.islink() 判斷文件是否連接文件,返回booleanos.path.ismount() 指定路徑是否存在且為一個掛載點,返回booleanos.path.samefile() 是否相同路徑的文件,返回booleanos.path.getatime() 返回最近訪問時間 浮點型os.path.getmtime() 返回上一次修改時間 浮點型os.path.getctime() 返回文件創建時間 浮點型os.path.getsize() 返回文件大小 字節單位os.path.commonprefix(list) os.path.lexists os.path.expanduser(path) os.path.expandvars(path) os.path.sameopenfile(fp1, fp2) os.path.samestat(stat1, stat2) os.path.splitdrive(path) os.path.walk(path, visit, arg) os.path.supports_unicode_filenames() 

例:

即在一個新建的文件裡面,繼續建文件夾。 

import ostry: name = "python3" count = 1 for i in range(6):  os.makedirs("%s/first%d"%(name,count))  count += 1except Exception as e: print(e)

 

運行結果:

os.listdir() 、os.path.isdir()讀取目錄下文件名並列印出非文件夾的文件內容

import ostry: path = "./python3/first1" files = os.listdir(path)  for i in files:  print(i)   if not os.path.isdir(i):    f = open(path + "/" + i ,"r")    for line in f:    print(line.strip()) except Exception as e:      print(e)

 

運行結果:

121.txt111116666.txtwenjianjia[Errno 13] Permission denied: './python3/first1/wenjianjia'

二、sys

Python的sys模塊提供訪問由解釋器使用或維護的變量的接口,並提供了一些函數用來和解釋器進行交互,操控Python的運行時環境。

下面就來詳細介紹下該模塊中常用的屬性和方法。

sys.argv 命令行參數List,第一個元素是程序本身路徑 sys.path 返回模塊的搜索路徑,初始化時使用PYTHONPATH環境變量的值 sys.modules.keys() 返回所有已經導入的模塊列表sys.modules 返回系統導入的模塊欄位,key是模塊名,value是模塊 sys.exc_info() 獲取當前正在處理的異常類,exc_type、exc_value、exc_traceback當前處理的異常詳細信息sys.exit(n) 退出程序,正常退出時exit(0)  sys.exit()系統返回值sys.hexversion 獲取Python解釋程序的版本值,16進位格式如:0x020403F0sys.version 獲取Python解釋程序的版本信息sys.platform 返回作業系統平臺名稱sys.stdout 標準輸出sys.stdout.write(『aaa『) 標準輸出內容sys.stdout.writelines() 無換行輸出sys.stdin 標準輸入sys.stdin.read() 輸入一行sys.stderr 錯誤輸出sys.exc_clear() 用來清除當前線程所出現的當前的或最近的錯誤信息 sys.exec_prefix 返回平臺獨立的python文件安裝的位置 sys.byteorder 本地字節規則的指示器,big-endian平臺的值是『big『,little-endian平臺的值是『little『 sys.copyright 記錄python版權相關的東西 sys.api_version 解釋器的C的API版本 sys.version_info 『final『表示最終,也有『candidate『表示候選,表示版本級別,是否有後繼的發行 sys.getdefaultencoding() 返回當前你所用的默認的字符編碼格式 sys.getfilesystemencoding() 返回將Unicode文件名轉換成系統文件名的編碼的名字 sys.builtin_module_names Python解釋器導入的內建模塊列表 sys.executable Python解釋程序路徑 sys.getwindowsversion() 獲取Windows的版本 sys.stdin.readline() 從標準輸入讀一行,sys.stdout.write(「a」) 屏幕輸出asys.setdefaultencoding(name) 用來設置當前默認的字符編碼(詳細使用參考文檔) sys.displayhook(value) 如果value非空,這個函數會把他輸出到sys.stdout(詳細使用參考文檔)sys.stdout.flush() 

1、動態對象

sys.argv 傳遞給程序的命令行參數列表;其中,sys.argv[0]表示腳本名稱,各個參數均為字符串類型。

寫一個腳本,內容如下:

import sys# filename:argv_test.pyfor i in range(len(sys.argv)):      print('argv{0}: type is {1}, value is {2}'.format(i, type(sys.argv[i]), sys.argv[i]))

      

返回結果:

argv0: type is <class 'str'>, value is 』程序本身路徑,這裡不顯示出來了『

在命令行下運行該腳本,並提供幾個參數

python argv_test.py 1 a 2 b 3 c

輸出:

argv0: type is <class 'str'>, value is argv_test.pyargv1: type is <class 'str'>, value is 1argv2: type is <class 'str'>, value is aargv3: type is <class 'str'>, value is 2argv4: type is <class 'str'>, value is bargv5: type is <class 'str'>, value is 3argv6: type is <class 'str'>, value is c

sys.stdout.write    和  print效果基本一樣 

 

import sys,timefor i in range(100):    sys.stdout.write('>')    #print('>',end='')    time.sleep(0.05)    sys.stdout.flush() #刷新

    運行結果:

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

三、執行系統命令

可以執行shell命令的模塊有:os.system() 

import osos.system('dir')

運行結果:

相關焦點

  • Python3 pickle模塊的使用詳解
    pickle模塊特點1、只能在python中使用,只支持python的基本數據類型。2、可以處理複雜的序列化語法。
  • python中的turtle模塊詳解(一)
    這裡開始介紹turtle模塊中的一些函數功能,正確理解函數的用法,才能更好的使用模塊來實現需要的功能。
  • 告別菜鳥 ,一文學會Python模塊
    Python模塊:概述在Python中定義模塊的方式有三種:用Python編寫的模塊,我們寫的主要是這一類模塊用C語言編寫模塊,並在運行時動態加載模塊,例如re(正則表達式)模塊。這種模塊看不到原始碼。包含在解釋器中的內置模塊,比如itertools模塊。在這三種情況下,訪問模塊內容的方式都是相同的: 使用import語句。
  • [Python]函數模塊
    [Python]函數模塊1. 如何構建函數模塊1. 為module創建一個文件夾2.將發布文件安裝到python本地副本中安裝命令(類似與linux中安裝驅動):python3 setup.py install安裝完成後,生成了一個build文件夾,進入裡面在底層文件夾裡面就只有一個nester.py的原始碼文件(build\lib\nester.py)
  • Python|模塊sys
    模塊是一個包含定義函數和變量的文件,其後綴名是.py。模塊可以被別的程序引入,以使用該模塊中的函數等功能。
  • python 模塊導入詳解
    python 模塊導入詳解在寫python代碼時經常會導入一些內置模塊、第三方模塊或者自己目錄下寫的模塊
  • python paramiko模塊簡介
    一:簡介paramiko是用python語言寫的一個模塊,遵循SSH2協議,支持以加密和認證的方式
  • 3種方法學會python模塊使用,3分鐘直接上手一個python繪圖程序
    013種方式查看python模塊使用,使用turtle模塊完成第一個繪畫程序程式語言是一種工具,工具就是為了解決問題,我們的學習模式,都是針對具體問題,展開的學習首先公布第一個程序需要做什麼,然後我們一起來看看如何完成第一個任務
  • python的模塊module介紹
    這樣一級級、一層層構成了一個大項目。本文共計2500字,閱讀大概需要20分鐘。我們寫一個python腳本,通常需要導入(import)其它模塊。比如,如果我們打算獲取命令行參數,就需要import sys。如果我們打算新建文件夾,就需要import os。又如果我們打算使用科學計算,就需要import numpy。在python的PyPI ( https://pypi.python.org/pypi ) 裡的第三方模塊包已經超過12萬個。
  • python|淺談Python中的pickle模塊
    Pickle模塊用於將python對象序列化為字節流,可存儲在文件或資料庫中,也可同通過網絡進行傳輸。使用反序列化(Unpickle)可以將生成的字節流轉換回python對象。「Pickling」是將Python對象層次結構轉換為字節流的過程,「unpickling」是反向操作,從而將字節流(來自二進位文件或類似字節的對象)轉換回對象層次結構。
  • 創建並發布自己的python模塊
    python通過模塊來共享組織代碼,python不僅內置了豐富的標準庫,而且python社區還貢獻了大量的第三方模塊
  • Python os 模塊
    引言眾所周知,python是一種強大的腳本語言,那麼,問題來了,為什麼不用python來編寫Linux腳本呢?
  • python json模塊講解
    JSON的數據格式其實就是python裡面的字典格式,裡面可以包含方括號括起來的數組,也就是python裡面的列表。在python中,有專門處理json格式的模塊—— json 和 picle模塊Json   模塊提供了四個方法:dumps、dump、loads、loadpickle 模塊也提供了四個功能:dumps、dump、loads、load 一. dumps 和 dump: dumps和dump   序列化方法
  • python(內置函數, 模塊)打補丁, 兼容py2、3
    所以就有了以下常見問題, 比如, py2的內置函數py3已不使用, py2的內置模塊py3已經改名....內置函數補丁import sysif sys.version_info[0] >= 3: PY3 = Trueelse: PY3 = Falsedef patch_default_type(): if not PY3: return __builtins__["unicode"] = __builtins
  • Python系列特別篇-模塊
    gt; print(ts(d.fib(10), 5))[3, 4]Python腳本(模塊)可以通過python命令直接執行,同時還可以傳入參數,方法:python demo.py [arguments],這裡的參數是可選的,看程序的需求,參數的接收是通過Python的內置模塊sys完成的。
  • python sys模塊的常見用法匯總
    獲取python版本信息>>> sys.version'3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)]'>>> sys.version_infosys.version_info(major
  • 【一日一技】python模塊的懶加載
    在編寫python項目時,通常將需要使用的模塊直接通過import關鍵字導入到項目中,
  • Python黑帽編程2.6 模塊
    下面我們保存這段代碼為module_sys.py,從終端使用python來運行,並輸入參數「test argument」,如下圖所示:還有一種更簡單的方法from sys import *導入sys模塊中所有可用的變量或方法。一般說來,應該避免使用from..import而使用import語句,因為這樣可以使你的程序更加易讀,也可以避免名稱的衝突。2.6.3 __NAME__每個模塊都有一個名稱,在模塊中可以通過語句來找出模塊的名稱。
  • Python使用pip安裝Numpy模塊
    安裝Numpy模塊一般有兩種安裝方法:一:下載模塊對應的.exe文件,直接雙擊運行安裝二:下載模塊對應的.whl文件
  • Python 網際網路數據處理模塊介紹
    python web 客戶端測試 相關模塊web客戶端- 標準模塊:httplib- 標準模塊:urllib- 標準模塊:urllib2- 外部模塊 mechanize:Stateful programmatic web browsing.