概念:
一个py或者一些py文件的总称,这些文件一般都是为某一特定的功能而写代码
分类:
(1)系统模块
主要看系统模块:
一,模块的导入
在使用模块时,必须先要把模块导进来,才能正常使用
格式
(1) import package/(模块名称)
(2) import package.module
(3) from package/(模块) import module/(子模块)
(4) from package as alisa #包名比较长,又要多次用,可以给取别名 , 后使用时直接写别名就好了。
二,random模块
使用的方法:
(1)random 返回[0,1)区间的随机数
>>> import random
>>> random.random()
0.9098609195652997
>>> random.random()
0.7023274268820822
>>> random.random()
0.8391657759060349
(2)randint
random.randint(x,y)
返回[x,y]区间的随机整数,注:x,y必须也是整数
>>> import random
>>> random.randint(2,8)
4
>>> random.randint(2,8)
7
>>> random.randint(2,8)
5
(3)choice #在一个序列中随机返回元素
>>> a = ["xixi","haha","hehe"]
>>> a
['xixi', 'haha', 'hehe']
>>> random.choice(a)
'hehe'
>>> random.choice(a)
'haha'
>>> random.choice(a)
'hehe'
>>> random.choice(a)
'hehe'
(4)randrange
>>> random.randrange(3) #随机产生[0,3)的整数
0
>>> random.randrange(1,3) #随机产生[1,3)的整数
2
三,math模块
存在于大量的编程语言,用来操作数学运算
(1)ceil :向上取整,只要存在小数,则向上取整
>>> import math
>>> math.ceil(5.23)
6
>>> math.ceil(5.01)
6
(2)floor :向下取整
>>> math.floor(5.01)
5
>>> math.floor(5.99)
5
(3)e :自然常数
pi :圆周率
>>> math.e
2.718281828459045
>>> math.pi
3.141592653589793
(4)fabs 取绝对值
>>> math.fabs(-6)
6.0
>>> math.fabs(6)
(6)fmod 取模(余)
>>> math.fmod(6,4)
2.0
(7)pow 幂次方
>>> math.fmod(6,4)
2.0
(8)sqrt :开平方
>>> math.sqrt(9)
3.0
>>> math.sqrt(8)
2.8284271247461903
四,os模块
目的:用来操作操作系统的文件系统
引入模块
>>> import os
(1)该属性表示当前路径,显示的为相对路径
>>> os.curdir
'.'
(2)获取的是绝对路径,两个\\是,第一个为转义符,第二个为目录路径的分隔,所以在写路径时,必须\\
>>> os.getcwd()
'C:\\Users\\leixinmiao'
(3)遍历得到当前工作空间下的所有文件及文件夹,返回一个列表
>>> os.listdir()
['.PyCharm2017.1', '.VirtualBox', '.vscode', 'AppData', 'Application Data', 'Contacts', 'Cookies', 'Desktop', 'Documents', 'Downloads',
(4)与(3)功能相同,但返回的是一个迭代器
>>> os.scandir() 注:里面不能写参数
<nt.ScandirIterator object at 0x00AFCF40>
>>> for i in os.scandir():
... print(i)
...
<DirEntry 'b'>
<DirEntry 'dama'>
<DirEntry 'lianxi'>
注:绝对路径是指完整的路径,相对路径是相对于当前文件的路径, "."表示当前目录,“..”表示上一层目录。
修改当前工作的空间路径
>>> os.chdir("E:\\python\\2020-2-17\\新建文件夹")
>>> os.getcwd()
'E:\\python\\2020-2-17\\新建文件夹'
>>> os.listdir()
[] 表示当前路径下没有任何文件
>>> os.listdir() 新建一个hhh.txt,就会出现
['hhh.txt']
获取当前系统的CPU核数
>>> os.cpu_count()
4
用\表示一级与另一级的分隔,不同的系统使用不同的分隔方式,代码运行在什么系统并不能确定,所以一般不手写,使用
sep 获取系统对应的分件分隔符(调用)
>>> os.sep
'\\'
在python代码中执行某个命令
eg:清屏
os.system("cls")
文件夹的创建:
>>> os.mkdir("a")
>>> os.makedirs("b/c")
删除操作:
(1)删除文件
>>> os.remove("a.txt")
不能删除文件夹
>>> os.remove("a")
Traceback (most recent call last):
File "" , line 1, in <module>
PermissionError: [WinError 5] 拒绝访问。: 'a' 权限不够
(2)删除文件夹 一级删除
>>> os.removedirs("a")
>>> os.removedirs("b/c") (在目录下为空时,多级删除,全部删除)
注:
目录下创建一文件,删除失败
>>> os.makedirs("b/c")
>>> os.removedirs("b/c")
Traceback (most recent call last):
File "" , line 1, in <module>
File "E:\python\bianyiqi\lib\os.py", line 239, in removedirs
rmdir(name)
OSError: [WinError 145] 目录不是空的。: 'b/c'
删除文件夹,只删除最后一级
>>> os.rmdir("a/b/c")
重命名:
>>> os.rename("s.txt","d.txt") 在当前目录下重命名文件或文件夹
>>> os.rename("E:\\python\\2020-2-17\\b\\c.txt","x.txt")
结果就是指定的c.txt不存在,以x.txt出现在当前工作目录下
>>> os.rename("E:\\python\\h\\dd.txt","E:\\python\\h\\s.txt") 指定目录,重命名。
可以重新命名多级
os.renames("E:\\python\\2020-2-17\\b\\s.txt","E:\\python\\2020-2-17\\f\\v.txt")
os.path
是os模块的子模块,主要用来操作文件,与os配合使用
>>> from os import path
>>> os.path.basename
<function basename at 0x02C8E6A0>
(2)
>>> from os import path as o
>>> o.abspath(".") 显示相对路径的绝对路径
'E:\\python\\2020-2-17'
>>> o.basename("t\s.txt") 显示路径对应的最后的文件名称
's.txt'
遍历当前磁盘下的文件
import os
from os import path
def scanner_file(url):
#使用递归来遍历path对应的磁盘数据
files = os.listdir(url) # 返回是当前路径下的文件及文件夹列表
for f in files: #因为列表可以遍历
# real_path = url + "/" + f #拼接路径,但"\"不一定所有系统的都识别
# real_path = url + os.sep + f #所以获取文件分隔符
real_path = path.join(url, f) #拼接
#判断是否是文件或文件夹
if path.isfile(real_path): #是文件
print(real_path)
else
scanner_file(real_path) #使用递归
scanner_file("f://") #输入要遍历的路径
os.path方法:
abspath # 显示相对路径的绝对路径
basename # 一般而言,显示路径对应的文件名称
exists # 判断文件或者文件夹是否存在
getsize # 获取文件的大小
isdir # 判断是否是目录
isfile # 判断是否是文件
join # 拼接路径
split # 分割文件路径