python ac模組 Python模組

2021-10-11 22:07:32 字數 3099 閱讀 8298

使用模組

python本身內建了很多有用的模組,可以立刻使用。

如:內建的sys模組。編寫乙個test的模組

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

' a test module '

__author__ = 'michael liao'

import sys

def test():

args = sys.ar**

if len(args) == 1:

print('hello, world!')

elif len(args) == 2:

print('hello, %s' % args[1])

else:

print('too many arguments!')

if __name__ == '__main__':

test()

# test.py

第1行注釋可以讓這個test.py檔案直接在unix/linux/mac上執行;

第2行注釋表示.py檔案本身使用標準utf-8編碼;

第4行是乙個字串,表示模組的文件注釋,任何模組**的第乙個字串都被視為模組的文件注釋;

第6行使用__author__變數把作者寫進去,這樣當你公開源**後別人就可以瞻仰你的大名;

以上是python模組的標準檔案模板,當然也可以全部刪掉不寫,但是,按標準辦事肯定沒錯。

第8行import sys是匯入sys模組。

匯入sys模組後,就有了變數sys指向該模組,利用sys變數,可以訪問sys模組的所有功能。

再sys模組中有乙個ar**變數,用list儲存了命令列的所有引數。ar**至少又乙個元素,因為第乙個引數永遠是該.py檔案的名稱。

if __name__ == '__main__':

test()

當執行test模組檔案時,python直譯器把乙個特殊變數__name__置為__main__,若在其他地方匯入test模組時,if判斷將失敗,這種if測試可以讓 乙個模組快通過命令列執行時執行一些額外的**,最常見的是執行測試。

$ python test.py

hello, world!

$ python test.py michael

hello, michael!

作用域在python中,通過_字首來實現。

正常的函式和變數名是公開的,可被直接引用:abs,x123,pi等;

__xx__是特殊變數,可以直接引用,但是又特殊用途,設定變數的時候一般不用這種變數名。

_***和__***的函式或者變數是非公開的,不應該被直接引用,如_abc,__abc等;

如_***和__***的函式或變數,若引用,需要使用被公開的函式或者變數,以做到訪問非公開的函式或變數,如:

def _private_1(name): # 被隱藏的函式1

return 'hello, %s' % name

def _private_2(name): # 被隱藏的函式2

return 'hi, %s' % name

def greeting(name): # 公開的函式

if len(name) > 3:

return _private_1(name) # 呼叫被隱藏的函式1

else:

return _private_2(name) # 呼叫被隱藏的函式2

安裝第三方模組

python中,安裝第三方模組,通過包管理工具pip完成。

若使用的是mac或linux,安裝pip本身可以跳過,若使用的是windows,參考安裝python的內容,確保安裝勾選了pip和add python.exe to path。驗證方式:cmd命令提示符下執行pip命令,若提示未找到命令,重新執行安裝程式新增pip。

如:我們要安裝乙個第三方庫——python imaging library,這是python下非常強大的處理影象的工具庫。不過,pil目前只支援到python 2.7,並且有年頭沒有更新了,因此,基於pil的pillow專案開發非常活躍,並且支援最新的python 3。

一般來說,第三方庫都會在python官方的pypi.python.org**註冊,要安裝乙個第三方庫,必須先知道該庫的名稱,可以在官網或者pypi上搜尋,比如pillow的名稱叫pillow,因此,安裝pillow的命令就是:

pip install pillow

安裝常用模組

在使用python時,我們經常需要用到很多第三方庫,例如,上面提到的pillow,以及mysql驅動程式,web框架flask,科學計算numpy等。用pip乙個乙個安裝費時費力,還需要考慮相容性。我們推薦直接使用anaconda,這是乙個基於python的資料處理和科學計算平台,它已經內建了許多非常有用的第三方庫,我們裝上anaconda,就相當於把數十個第三方模組自動安裝好了,非常簡單易用。

安裝好anaconda後,重新開啟命令列視窗,輸入python,可以看到anaconda的資訊:

可以嘗試直接import numpy等已安裝的第三方模組。

模組搜尋路徑

預設情況下,python直譯器會搜尋當前目錄、所有已安裝的內建模組和第三方模組,搜尋路徑存放在sys模組的path變數中:

>>> import sys

['', 'd:\\anaconda3\\python37.zip', 'd:\\anaconda3\\dlls', 'd:\\anaconda3\\lib',

'd:\\anaconda3', 'd:\\anaconda3\\lib\\site-packages', 'd:\\anaconda3\\lib\\site-packages\\win32',

'd:\\anaconda3\\lib\\site-packages\\win32\\lib', 'd:\\anaconda3\\lib\\site-packages\\pythonwin']

若新增自己的搜尋目錄,有兩種方式:

直接修改sys.path,新增要搜尋的目錄:

>>> import sys

# 執行時修改,執行結束後失效

設定環境變數pythonpath,該環境變數的內容會被自動新增到模組快搜尋路徑中。設定方式與設定path環境變數類似。注意:只需要新增自己的搜尋路徑,python自己本身的搜尋路徑不受影響

如何把idaapi模組在外部給python使用

使用ida都知道idapython外掛程式,提供idc.py idaapi.py idautils.py,可以直接import進來,可以在ida執行時使用內部python外掛程式執行 然而這幾個函式在不使用ida上下文的時候是無法使用的,會提示找不到 idaapi模組,那麼 idaapi又是 來的呢...

python通達信模組 通達信轉python

好轉,學會以下操作就很容了。得到當前工作目錄,即當前python指令碼工作的目錄路徑 os.getcwd 返回指定目錄下的所有檔案和目錄名 os.listdir 函式用來刪除乙個檔案 os.remove 刪除多個目錄 osremovedirs r c python 略危險,熟練之後再用吧 檢驗給出的...

protocol buffer在python中使用

2.然後將potoc 3.0.0 win32.zip下 檔案 protoc.exe,放到protobuf python 3.0.0 protobuf 3.0.0 src中,在cmd 下在資料夾protobuf python 3.0.0 protobuf 3.0.0 python下依次執行 pytho...