Python模塊簡析

1,什麼是模塊

2,模塊的分類

3,如何導入模塊或自定義模塊

4,常見的系統模塊簡析  random,math,os,os.path

 

 

壹   什麼是Python的模塊

我們之前在Python解釋器上寫的Python程序,建立了那麼多函數,但是隻要退出瞭解釋器,我們定義的變量和函數都消失了;牛頓有句話說的好:要站在巨人的肩膀上;也就是一切都最好不要從零開始;於是乎,Python就提供了一個辦法:把這些定義存放在文件中,爲一些腳本或者交互式的解釋器實例使用,這個文件就被稱爲模塊。

所有的python模塊都放在了這個地方,調用和導入第三方模塊都是在這裏進行的,而且所有的模塊文件都是py格式C:\Users\95385\AppData\Local\Programs\Python\Python37\Lib

 

 

 

貳   模塊的分類

Python中的模塊大致能分爲以下幾類:

  • 系統模塊
  • 第三方模塊
    • 非官方的模塊,在Python界佔有重要的一席之地,也是Python社區對於Python語言的不斷壯大的顯著效果;需要藉助工具pip來進行安裝導入     
    • requests # pip install requests
  • 自定義模塊
    • xxx.py 導入到其他的py文件中使用   
    • project->package->模塊

 

 

 

叄   如何導入模塊或者是自定義模塊

import語句

若想使用模塊庫裏面的源文件,需要在另一個py文件中執行 import 語句

import 模塊名[, 模塊名2[,... 模塊名N]

因爲當解釋器遇到 import 語句,如果模塊在當前的搜索路徑就會被導入。而搜索路徑是一個解釋器會先進行搜索的所有目錄的列表。如想要導入模塊 support,需要把命令放在腳本的頂端:

我們所調用的模塊其實就是一個程序,模塊裏面的宗多功能就是程序裏的各種事先寫好的函數,方便我對門的調用

 

from ... import 語句

用來導入模塊內的某個子模塊(也就是模塊程序的某個函數)

from 模塊名e import 子模塊[, 子模塊2[, ... 子模塊N]]

 

from ... import * 語句

用來導入模塊內的所有子模塊(也就是模塊程序中的所有函數)

from 模塊名 import *

 

使用別名導入

import 模塊名 as 別名

這樣再次導入的時候就不用輸入那種一大堆一大堆的模塊名稱了,記也記不住,用個別名多好

 

 

肆   常見的系統模塊簡析

 

random模塊

首先導入模塊:

import random

這是一個隨機數的模塊,模塊中有各種方法可以產生多種不同的隨機數形式(要注意,凡是用晶體管計算機用時鐘或是算法產生的隨機數,都是僞隨機數) 

>>> import random
>>> dir(random)
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_BuiltinMethodType', '_MethodType', '_Sequence', '_Set', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', '_inst', '_itertools', '_log', '_os', '_pi', '_random', '_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', '_warn', 'betavariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'normalvariate', 'paretovariate', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']
>>>                    

有這麼多模塊......

  • random()   返回一個(0,1]之間的隨機數
  • randint(m, n)    返回[m,n]之間的隨機整數
  • choice()  從一個序列中隨機選擇元素
  • randrange(x)   隨機隨機產生一個[0,x)之間的整數

 

math模塊

專門爲數學相關專業準備的內置模塊,可以方便的調用操作各種數學理論方面的東西;

數學畢竟是萬科之宗,所有工科的盡頭就是數學,所有文科的盡頭就是哲學;數學和哲學的盡頭都是神學(逃

>>> import math
>>> dir(math)
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
>>>
  • ceil   只要數值存在小數位,則向上取整
  • floor    只要數值存在小數位,則向下取整
  • e    自然常數  不要加括號了
  • pi     圓周率
  • fabs     求絕對值
  • fmod    求模(求餘數)
  • pow    求冪次方
  • sqrt   開平方根

 

os模塊

os 模塊提供了非常豐富的方法用來處理文件和目錄;這裏就僅僅介紹幾個常用的os模塊,先粘貼一個文檔,有需要自己去查

os模塊菜鳥教程文檔

>>> import os
>>> dir(os)
['DirEntry', 'F_OK', 'MutableMapping', 'O_APPEND', 'O_BINARY', 'O_CREAT', 'O_EXCL', 'O_NOINHERIT', 'O_RANDOM', 'O_RDONLY', 'O_RDWR', 'O_SEQUENTIAL', 'O_SHORT_LIVED', 'O_TEMPORARY', 'O_TEXT', 'O_TRUNC', 'O_WRONLY', 'P_DETACH', 'P_NOWAIT', 'P_NOWAITO', 'P_OVERLAY', 'P_WAIT', 'PathLike', 'R_OK', 'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX', 'W_OK', 'X_OK', '_Environ', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_execvpe', '_exists', '_exit', '_fspath', '_get_exports_list', '_putenv', '_unsetenv', '_wrap_close', 'abc', 'abort', 'access', 'altsep', 'chdir', 'chmod', 'close', 'closerange', 'cpu_count', 'curdir', 'defpath', 'device_encoding', 'devnull', 'dup', 'dup2', 'environ', 'error', 'execl', 'execle', 'execlp', 'execlpe', 'execv', 'execve', 'execvp', 'execvpe', 'extsep', 'fdopen', 'fsdecode', 'fsencode', 'fspath', 'fstat', 'fsync', 'ftruncate', 'get_exec_path', 'get_handle_inheritable', 'get_inheritable', 'get_terminal_size', 'getcwd', 'getcwdb', 'getenv', 'getlogin', 'getpid', 'getppid', 'isatty', 'kill', 'linesep', 'link', 'listdir', 'lseek', 'lstat', 'makedirs', 'mkdir', 'name', 'open', 'pardir', 'path', 'pathsep', 'pipe', 'popen', 'putenv', 'read', 'readlink', 'remove', 'removedirs', 'rename', 'renames', 'replace', 'rmdir', 'scandir', 'sep', 'set_handle_inheritable', 'set_inheritable', 'spawnl', 'spawnle', 'spawnv', 'spawnve', 'st', 'startfile', 'stat', 'stat_result', 'statvfs_result', 'strerror', 'supports_bytes_environ', 'supports_dir_fd', 'supports_effective_ids', 'supports_fd', 'supports_follow_symlinks', 'symlink', 'sys', 'system', 'terminal_size', 'times', 'times_result', 'truncate', 'umask', 'uname_result', 'unlink', 'urandom', 'utime', 'waitpid', 'walk', 'write']
>>>

有丶多

  •  chdir   修改當前工作空間路徑
  •  chmod    修改權限
    • os.chmod(path, mode)
  •  cpu_count    獲取當前系統的cpu核數
  •  getcwd    該屬性表示當前路徑,注意,獲取的是絕對路徑
  •  listdir    遍歷得到當前工作空間下的所有文件及文件夾,返回一個列表
  •  makedirs     創建文件夾,可以級聯創建多層
  •   mkdir  創建文件夾,注意:只能創建一層
    • 同上
  •  remove    刪除文件
    •   不演示了
  •   removedirs   刪除文件夾,注意,可以多級刪除
  •   rename   重命令  不演示; 
  •  rmdir   刪除文件夾,注意,應該只能一級一級刪除   不演示了
  •  scandir    遍歷得到當前工作空間下的所有文件及文件夾,返回一個迭代器對象
  • sep    返回系統對應的文件分割符
    • win10   
    • kaliLinux(Debian)  
  • system    該方法可以執行該系統對應的所有終端命令

 

os.path模塊

這個是os的子模塊,os.path 主要是用來操作文件的,判斷文件是否存在、判斷是文件還是文件夾等等,非常適合用於python的系統運維;

調用的時候需要 :

from os import path
  • abspath     顯示當前目錄內文件(文件夾)的相對路徑的絕對路徑
  • basename       一般而言,顯示路徑對應的文件名稱 
  • exists        判斷文件或者文件夾是否存在
  • getsize     獲取文件的大小  單位是 B 字節
  • isdir       判斷是否是目錄
  • isfile      判斷是否是文件
  • join      拼接路徑
  • split       分割文件路徑

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章