一.标准模块
1、python自带的,import random,json,os,sys,datetime,hashlib等
①.正常按照命令:打开cmd,执行:pip install rangdom/json/os/datetime等模块名称
②.下载安装包,安装包分两种格式:.whl 和.tar.gz格式,其中:
.whl安装:pip install xxx.whl
.tar.gz安装:解压后,执行:python setup.py install
注:若电脑安装了多个版本的python,安装模块的时候,可以执行:
python3 -m pip instatll 模块名
python2 -m pip instatll 模块名
2、第三方模块
python导入模块的时候的顺序:
1.从当前目录下找需要导入的python文件
2.从python的环境变量中找(python的安装路径的环境变量)
**导入模块的实质:就是这这个python文件从头到尾执行一遍
两种导入方法,例如:
方法1:
# import fancy #fancy是一个自己写的python文件,其中包含一个my()方法,一个name变量
# fancy.my() #调用fancy文件的my()方法
# print(fancy.name) #打印fancy文件的name变量
方法2:
#from fancy import my,name,
#my()
#print(name)
3、自己写的python文件
二.函数返回多个值:
1、函数如果返回多个值的话,它会把这几个值放到一个元组里面
def say():
num1 = 1
num2 = 2
num3 = 3
return num1,num2,num3
print(say())
结果:
2、函数如果返回多个值的话,也可以用多个变量来接收
def say():
num1 = 1
num2 = 2
num3 = 3
res1,res2,res3 = say()
print(res1)
print(res2)
print(res3)
结果:
三.列表生成式
#外面是小括号的话,它就不是一个list了,它是一个生成器,
#生成器比list要节省内存,它是每次循环的时候,会根据规则计算一个元素,放到内存里面
#list它是把所有的元素都放在内存里面的
结果:
四.lambda(匿名函数)这个函数的功能简单,只用一次
lambda x: x+1 #冒号后面的是函数体,也是函数的处理逻辑,冒号前面的返回值
比如:对字典里的key或value进行排序:
d = {'a':8,'b':2,'c':3}
#字典是无序,直接对字典排序是不存在的。
print(d.items()) #获取字典的k,v:dict_items([('c', 3), ('b', 2), ('a', 8)])
res = sorted(d.items(),key=lambda x:x[1]) #对字典里的value进行排序
print(res)
结果:
五.常用标准模块:
os模块:对操作系统的一些操作
print(os.getcwd()) #获取当前工作目录 结果:C:\Users\Fancy\Desktop\学习笔记\day6
print(os.chdir("../day5"))#更改当前目录 #相对路径:../day5/xx 绝对路径:C:\Users\Fancy\Desktop\学习笔记\day6
os.listdir('e:\\')#列出目录下所有的文件和文件夹
os.remove() #删除文件
os.rename(old,new) #重命名
print(os.sep)#当前操作系统的路径分隔符
res = os.system('ipconfig') #执行操作系统命令的,但是获取不到结果
res = os.popen('ipconfig').read() #可以获取到命令执行的结果
print(os.path.abspath(__file__))#获取绝对路径
prtint(os.path.abspath('.')#获取当前文件的绝对路径
print(os.path.split("/usr/hehe/hehe/txt")) #分割路径和文件名 结果:('/usr/hehe', 'hehe.txt')
print(os.path.dirname("e:\\syz\\ly-code"))#获取父目录,获取它的上一级目录 结果:e:\syz
print(os.path.basename("e:\\syz\\ly-code\\a.txt"))#获取最后一级,如果是文件显示文件名,如果是目录显示目录名 结果:a.txt
print(os.path.exists(r"E:\syz\ly-code\day6")) #判断文件或者目录是否存在 True 或False
print(os.path.isfile("xiaohei.py")) #判断是否是一个文件,1、文件要存在2、必须是一个文件(返回True时)
print(os.path.isdir("e:\\syz1"))#是否是一个路径,目录是否存在
size = os.path.getsize('x.py') #获取文件的大小
os.path.join("root",'hehe','mysql','a.sql') #拼接路径 结果:root\hehe\mysql\a.sql
for abs_path,dir,file in os.walk(r'e:\nhy'):
print(abs_path,dir,file)
# abs_path 当前循环的绝对路径
# dir 目录下面所有的文件夹 [ ]
# file 目录下面的所有文件 []
os.walk小练习:
# 把双数日期的日志,里面给随便写点东西。
# 1、获取到log目录下面的所有文件 os.walk()
# 2、根据文件名来判断,是否是双数日期 ,分割字符串,取到日期
# 3、12%2==0
# 4、打开这个文件 open()
import os for abs_path,dir,file in os.walk(r'E:\syz\ly-code\day6\logs'): for f in file: day = f.split('.')[0].split('-')[-1] if int(day)%2==0: file_name = os.path.join(abs_path,f)#拼接绝对路径 open(file_name,'a+',encoding='utf-8').write('写东西')#