python自定義模塊
① 如何在python中添加自定義模塊
1、說明
python添加自定義第三方模塊使用pip命令。
2、步驟
以安裝requests模塊為例說明
1)打開命令行
win+r打開運行,輸入cmd點確定
如不報錯則說明安裝成功
② 如何在python中添加自定義模塊
一般來說,我們會將自己寫的python模塊與python自帶的模塊分開存放以達到便於維護的目的。
Python 運行環境在查找庫文件時是對 sys.path 列表進行遍歷,如果我們想在運行環境中注冊新的類庫,主要有以下三種方法:
在sys.path列表中添加新的路徑。
設置PYTHONPATH環境變數。
將庫文件復制到sys.path列表中的目錄里(如site-packages目錄)。
其實,最簡單的辦法是用 .pth 文件來實現。Python 在遍歷已知的庫文件目錄過程中,如果見到一個 .pth 文件,就會將文件中所記錄的路徑加入到 sys.path 設置中,這樣 .pth 文件說指明的庫也就可以被 Python 運行環境找到。
操作:
在Python/Lib/site-package目錄下創建一個MyMole.pth文件,其中內容為自定義的模塊所在的路徑。
Config代碼
C:\Project
C:\Project 這樣Project目錄下的python文件就可以被找到了。
謝謝採納
③ python有多少個模塊(python常用的模塊有哪些)
今天給各位分享python有多少個模塊的知識,其中也會對python常用的模塊有哪些?進行解釋,如果能碰巧解決你現在面臨的問題,別忘了關注本站,現在開始吧!
一、導入模塊
importmole
frommole.xximportxx
frommole.xximportxxasrename
frommole.xximport*
二、開源模塊
yum、pip、apt-get
源碼編譯安裝:Pythonsetup.pybuildPythonsetupinstall
三、常用模塊
os模塊#用作系統級別的工作
sys模塊#提供解釋器相關操作
hashlib模塊#用於加密相關的操作
json和pickle模塊#用於序列化數據
subprocess模塊
shuit模塊#文件的復制移動
logging模塊#格式化記錄日誌
random模塊用於取隨機數
timedatetime模塊時間模塊
re模塊正則匹配
python目前三方提供的可用編程模塊函數庫組件規模有多大
C++,Java和Python是競爭性編程的三種最常見的語言。在本文中,我們將從競爭性編程和面試准備的角度重點介紹最重要的Python模塊。
?
list:動態大小的數組,允許在不關心數組大小的情況下進行插入和刪除。它還具有普通數組的優點,例如隨機訪問和緩存友好性。list也可以用作隊列和堆棧。
deque:Dequeue支持在O(1)時間內在兩端進行插入和刪除。由於它是使用數組實現的,因此它也允許隨機訪問。我們可以使用dequeue來實現隊列和堆棧。關於Deque的示例問題是,訪問所有的汽油泵和所有大小為k的子陣列的最大值。
請注意,Python中沒有用於隊列(Queue)和堆棧(Stack)的模塊。我們可以使用列表(list)或雙端隊列(deque)來實現這些。首選雙端隊列(deque)實現,尤其是對於隊列,因為在列表前面進行插入/刪除很慢。
在我們希望具有FIFO項目順序的情況下,隊列(Queue)很有用。問題示例包括:用給定的數字生成數字,流中的第一個非重復字元,樹及其變體的級序遍歷,圖的BFS及其變體。
set和dict:它們都實現了哈希。當我們有鍵的集合時,我們使用set。當我們有鍵值對時,我們使用字典(dictionary)。當我們希望快速搜索、插入和刪除時非常有用(這三個操作都是O(1))。這是業界使用最多的數據結構之一,也是學術界最低估的數據結構之一。常見的問題有:離散元素的計數、數組項的頻率、零和子陣、兩個未排序數組的並集、交集等。
heapq:默認情況下實現MinHeap。我們也可以創建最小堆。只要我們希望有效地找到最小或最大元素,就使用它。它用於實現流行的演算法,例如Prim演算法,Dijkstra最短路徑,霍夫曼編碼,K個最大元素,購買和合並K個排序數組的最大玩具,流的中位數。
sorted:對列表等序列進行排序。基於排序的示例問題包括:合並重疊間隔,所需的最小平台。第K個最小元素,求給定和的三元組。
bisect:用於二進制搜索。基於二進制搜索的示例問題有:查找第一次出現的索引、計數出現次數、峰值元素、兩個排序數組的中值。
注意:與C++STL和Java集合(Collections)不同。Python標准庫包含自平衡BST的實現。在Python中,我們可以使用bisect模塊來保留一組排序後的數據。我們還可以使用PyPi模塊,例如rbtree(紅黑樹的實現)和pyavl(AVL樹的實現)。
python中都有哪些模塊呢os模塊
os.getcwd()#獲取當前工作目錄,即當前python腳本工作的目錄路徑
os.chdir("dirname")#改變當前腳本工作目錄;相當於shell下cd
os.curdir#返回當前目錄:('.')
os.pardir#獲取當前目錄的父目錄字元串名:('..')
os.makedirs('dirname1/dirname2')#可生成多層遞歸目錄
os.removedirs('dirname1')#若目錄為空,則刪除,並遞歸到上一級目錄,如若也為空,則刪除,依此類推
os.mkdir('dirname')#生成單級目錄;相當於shell中mkdirdirname
os.rmdir('dirname')##刪除單級空目錄,若目錄不為空則無法刪除,報錯;相當於shell中rmdirdirname
os.listdir('dirname')#列出指定目錄下的所有文件和子目錄,包括隱藏文件,並以列表方式列印
os.remove()#刪除一個文件
os.rename("oldname","newname")#重命名文件/目錄
os.stat('path/filename')#獲取文件/目錄信息
os.sep#輸出操作系統特定的路徑分隔符,win下為"\",Linux下為"/"
os.linesep#輸出當前平台使用的行終止符,win下為" ",Linux下為" "
os.pathsep#輸出用於分割文件路徑的字元串win下為;,Linux下為:
os.name#輸出字元串指示當前使用平台。win-'nt'Linux-'posix'
os.system("bashcommand")#運行shell命令,直接顯示
os.environ#獲取系統環境變數
os.path.abspath(path)#返回path規范化的絕對路徑
os.path.split(path)#將path分割成目錄和文件名二元組返回
os.path.dirname(path)#返回path的目錄。其實就是os.path.split(path)的第一個元素
os.path.basename(path)#
返回path最後的文件名。如何path以/或結尾,那麼就會返回空值。即os.path.split(path)的第二個元素
os.path.exists(path)#如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path)#如果path是絕對路徑,返回True
os.path.isfile(path)#如果path是一個存在的文件,返回True。否則返回False
os.path.isdir(path)#如果path是一個存在的目錄,則返回True。否則返回False
os.path.join(path1[,path2[,...]])#將多個路徑組合後返回,第一個絕對路徑之前的參數將被忽略
os.path.getatime(path)#返回path所指向的文件或者目錄的最後訪問時間
os.path.getmtime(path)#返回path所指向的文件或者目錄的最後修改時間
os.path.getsize(path)#返回path的大小
sys模塊
sys.argv#命令行參數List,第一個元素是程序本身路徑
sys.exit(n)#退出程序,正常退出時exit(0)
sys.version#獲取Python解釋程序的版本信息
sys.maxint#最大的Int值
sys.path#返回模塊的搜索路徑,初始化時使用PYTHONPATH環境變數的值
sys.platform#返回操作系統平台名稱
datetime模塊
datetime.today()返回一個表示當前本期日期時間的datetime對象
datetime.now([tz])返回指定時區日期時間的datetime對象,如果不指定tz參數則結果同上
datetime.utcnow()返回當前utc日期時間的datetime對象
datetime.fromtimestamp(timestamp[,tz])根據指定的時間戳創建一個datetime對象
datetime.utcfromtimestamp(timestamp)根據指定的時間戳創建一個datetime對象
datetime.strptime(date_str,format)將時間字元串轉換為datetime對象
Python中的模塊importos
print(os.name)?#操作系統名稱?Windowsnt非Windowsposix
print(os.sep)?#路徑分隔符??Windows??其他/
importos
#使用os.path方法獲取文件的路徑
#001.獲取文件的絕對路徑使用abspath方法
print(os.path.abspath("04_模塊導入.py"))
#?運行結果:D:mypycharmpythonProject千峰培訓day11mole1 4_模塊導入.py
#002判斷是否是文件False
print(os.path.isdir(""))?
#運行結果:False
#003.判斷文件是否存在如果存在返回True否則返回False
print(os.path.exists("mydir"))
#True
importos
files="2020.12.22.test.py"
print(files.rpartition(".")[-1])?
print(os.path.splitext(files)[-1])
#運行結果:
#獲取文件的後綴名?py
#獲取文件的後綴名.py
importos
print(os.getcwd())
#運行結果:
#D:mypycharmpythonProject培訓day11mole1
importos
os.chdir("mydir")
print(os.getcwd())
#D:mypycharmpythonProject培訓day11mole1mydir
importos
os.rename("66.py","../99.py")
importos
#001.刪除文件
os.remove("../99.py")
#002.刪除空文件夾
os.rmdir("../mydir")
os.removedirs("mydir")
importos
os.mkdir("mydir")
importos
#001.列出指定目錄里所有的子目錄和文件
print(os.listdir("D:mypycharmpythonProject"))
#002.默認當前目錄里的子目錄和文件
print(os.listdir())
#運行結果:
#['.idea','千峰培訓','學校實習']
#[༿_mole.py',ཀ_模塊導入.py',ཁ_os.py',.12.22.tests.py','a01_mole1.py','a02_mole2.py','__pycache__']
importos
print(os.environ)
print(os.environ["PATH"])
importos
importstring?#字元串模塊
importrandom
files="test.jpg"
#?01.獲取文件的後綴
surffix=os.path.splitext(files)[-1]
#print(surffix)?#.jpg
#02.生成所有大小寫字母的列表
res=list(string.ascii_letters)
#print(string.ascii_letters)
#運行結果;
#?03.將0-9添加到res中
foriinrange(0,10):
??res.append(str(i))
#04.隨機生成文件名:
mystr="".join(random.sample(res,10))?#?sample隨機生成10個字元
#print(mystr)
#bJpED6dj2Y
#05.將文件名和後綴拼接
print(mystr+surffix)
importsys
print(sys.path)
res=sys.stdin
print(res)
importmath
#print(math.pi)?#3.141592653589793
print(math.factorial(5))?#120
#冪運算第一個參數是底數第二個參數是冪
print(math.pow(2,3))?#8.0
#向上取整和向下取整
print(math.floor(15.999))?#15
print(math.ceil(15.001))?#16
#四捨五入
print(round(123.51,1))?#123.5
#三角函數
print(math.sin(math.pi/6))?#sin(pi/6)0.49999999999999994
print(math.cos(math.pi/3))?#sin(pi/3)0.5000000000000001
print(math.tan(math.pi/4))?#sin(pi/6)0.9999999999999999
#開方
a=9
b=16
print(math.sqrt(a+b))?#5.0
#以e為底的指數函數
print(math.exp(a))
#?8103.083927575384
importrandom
#01.random()?隨機生成[0,1)之間的數?前閉後開
print(random.random())?#生成[0,1)之間的小數
#02.randint()生成范圍內的隨機整數????全閉
print(random.randint(10,20))?#生成[10,20]之間的整數
#03.randrange()生成范圍內的隨機整數???前閉後開
print(random.randrange(10,20))?#生成[10,20)之間的整數
#04.choice?參數是列表?隨機從列表中取一個?取一次
print(random.choice([1,2,3,4,5,6,77,8,9]))
#05.sample的第一個參數必須是一個可迭代對象
#?????第二個參數代表著從可迭代對象從隨機選取幾個,選取的對象不能重復
print("".join(random.sample(["a","b","c","d"],3)))
importdatetimeasdt#引入datetime模塊並將其命別名為dt
importtime
importcalendar?#引入日歷模塊
#01.datetime模塊
#001.獲取當前時間的具體信息
print(dt.datetime.now())?
#運行結果:
#2020-12-2615:36:36.408129
#年??月日?時分秒?毫秒
#002.創建日期
print(dt.date(2020,1,1))?
#年月日?2020-01-01
#003.創建時間
print(dt.time(16,30,30))
#時分秒:?16:30:30
#004.timedelta()括弧中的默認參數是天
print(dt.datetime.now()+dt.timedelta(3))?#2020-12-2515:50:15.811738
print(dt.datetime.now()+dt.timedelta(hours=3))?#2020-12-2218:51:41.723093
print(dt.datetime.now()+dt.timedelta(minutes=10))?#2020-12-2216:01:41.723093
#02.time
#001.當前時間的時間戳
#時間戳是指從1970—01-010:0:0到現在的秒數utc時間也叫格林尼治時間?
print(time.time())
#002.按照指定格式輸出時間
#print(time.strftime("%Y-%m-%d%H:%M:%S"))?#2020-12-2215:57:49
#時間格式:
#%Y?.
#%m?Monthasadecimalnumber[01,12].
#%d?Dayofthemonthasadecimalnumber[01,31].
#%H?Hour(24-hourclock)asadecimalnumber[00,23].
#%M?Minuteasadecimalnumber[00,59].
#%S?Secondasadecimalnumber[00,61].
#%z?TimezoneoffsetfromUTC.
#%a?Locale'sabbreviatedweekdayname.
#%A?Locale'sfullweekdayname.
#%b?Locale'sabbreviatedmonthname.
#%B?Locale'sfullmonthname.
#%c?Locale'.
#%I?Hour(12-hourclock)asadecimalnumber[01,12].
#%p?Locale'sequivalentofeitherAMorPM.
#003.ctime和asctime時間格式?輸出的時間格式一樣,
#print(time.asctime())?#TueDec2215:57:492020
#print(time.ctime())?#TueDec2215:58:352020
#004.sleep()?時間休眠
print("我負責浪")
print(time.sleep(3))
print("你負責漫")
#005.calender生成日歷
res=calendar.calendar(2021)?#生成2021年的日歷
print(res)
#006.判斷是否為閏年
print(calendar.isleap(2020))?#True
#007.從1988年到2020年有多少個閏年
print(calendar.leapdays(1988,2020))?#8
Python模塊的幾種類型簡介1、系統內置模塊
os模塊:os模塊包含普遍的操作系統功能
sys模塊:提供了一系列有關Python運行環境的變數和函數
random模塊:random模塊用於生成隨機數
time模塊:主要包含各種提供日期、時間功能的類和函數
datetime模塊:對time模塊的一個高級封裝
shutil模塊:是一種高層次的文件操作工具
logging模塊:將日誌列印到了標准輸出中
re模塊:可以直接調用來實現正則匹配
threading模塊:提供了更強大的多線程管理方案
queue模塊:實現了多生產者,多消費者的隊列
json模塊:用於字元串和數據類型間進行轉換json
2、開源(三方)模塊
Requests:最富盛名的http庫。每個Python程序員都應該有它。
Scrapy:從事爬蟲相關的工作,這個庫也是必不可少的。
NumPy:為Python提供了很多高級的數學方法。
matplotlib:一個繪制數據圖的庫。對於數據分析師非常有用。
Pygame:開發2D游戲的時候可以用上。
Scapy:用Python寫的數據包探測和分析庫。
Django:開源Web開發框架,它鼓勵快速開發,並遵循MVC設計,開發周期短。
Py2exe:將python腳本轉換為windows上可以獨立運行的可執行程序。
BeautifulSoup:基於Python的HTML/XML解析器,簡單易用。
PyGtk:基於Python的GUI程序開發GTK+庫。
3、自定義模塊
自定義模塊是
④ Python調用自定義模塊方法有什麼
import語句
自定義模塊可以採用import語句來進行引入,其操作步驟是先導入模塊,再調用模塊中包含的函數,可將自定義模塊放入當前目錄,便於解釋器路徑搜索,以下是導入自定義hello.py模塊,並調用World函數的實例:
#!/usr/bin/python
#-*- coding: UTF-8 -*-
#導入模塊
import hello
#現在可以調用模塊里包含的函數了
support.print_func("World")
輸出結果為:
Hello World!
以上實例也可以採用from…import的方法進行實現,是指從一個模塊中導入指定的部分到當前命名空間中,以上功能可寫成:
#!/usr/bin/python
#-*- coding: UTF-8 -*-
from hello import World
如果要將模塊中的所有內容全部導入當前命名空間,可採用from…import*的方法,具體實例如下:
#!/usr/bin/python
#-*- coding: UTF-8 -*-
from hello import *
還需注意,當要導入一個模塊時,Python解釋器會對模塊的位置進行搜索,具體搜索順序規律如下:
1.當前目錄;
2.如果不在當前目錄,Python則搜索在shell變數PYTHONPATH下的每個目錄;
3.如果都找不到,Python會察看默認路徑。