【Python】字典 && 文件操作 && 生成二维码 && 多媒体操作
目录
字典
字典是什么
字典是一种存储键值对的结构
键与值一对一映射,可以根据键找到值
创建字典
//第一种方法
a={
'id':1,
'name':'lzb'
}
//第二种方法
b=dict(id=1,name='lzb')
print(a)
- 一个字典的可key类型不一定都一样
- 一个字典中的value的类型也不必一样
- 最后一个键值对的逗号可写可不写
查找key
- 使用in可以判定key是否在字典中存在,返回布尔值
a={
'id':1,
'name':'lzb'
}
print('id' in a)
- 使用 [ ] 通过类似于取下标的方式,获取到元素的值,只不过此处的“下标”是key
a={
'id':1,
'name':'lzb'
}
//若key不存在则抛出异常
print(a['id'])
对于字典来说,使用in或者 [ ]来获取value都是非常高效的操作
对于列表来说,使用in比较低效(需要把整个列表遍历一遍),而使用 [ ]是比较高效的。
新增键值对
a={
'id':1,
'name':'lzb'
}
//这个操作就是往字典里插入新的键值对
a['score']=90
print(a)
修改键值对
a={
'id':1,
'name':'lzb'
}
a['id']=2
print(a)
删除键值对
a={
'id':1,
'name':'lzb'
}
a.pop('name')
print(a)
遍历键值对
这里循环遍历,获取到的是key值,我们可以通过[ ]获取value值
a={
'id':1,
'name':'lzb'
}
for key in a:
print(key,a[key])
python中哈希存储是无序的,但是打印时按照存储顺序进行打印
keys()
获取所有key值
a={
'id':1,
'name':'lzb'
}
print(a.keys())
//返回值是一个自定义的类型,使用的时候也可以把它当作列表使用
values()
获取所有value
items()
a={
'id':1,
'name':'lzb'
}
print(a.items())
//返回值是一个像列表一样的结构,里面每个元素又是一个元组,元组里面包含了,键和值
我们可以循环遍历items的返回值,例如:
for key,value in a.items():
print(key,value)
合法的key类型
不是所有的类型都可以作为字典的key,字典本质上是一个哈希表的key要求是“可哈希的”,也就是可以计算出一个哈希值。
- 可以使用hash函数计算某个对象的哈希值
- 能够计算出哈希值的类型,都可以字典的key
- 在python中hash函数能够计算出一个变量的哈希值
//整型
print(hash(0))
//字符串
print(hash('hello'))//布尔值
print(hash(True))//元组
print(hash((1,2,3)))列表、字典是不可以计算出哈希值的
- 不可变的对象一般是可哈希的
- 可变的对象一般是不可哈希的
文件
文件是什么
变量是把数据保存到内存中,如果程序重启/主机重启,内存中的数据就会丢失,要想让数据被持久化存储,就可以把数据存储到硬盘中,也就是文件中保存。
打开文件
使用open打开一个文件
f=open('d:/.../test.txt','r')
- f是open的返回值,返回一个文件对象(句柄)
- ‘r’是对指定文件的打开方式,
- r表示按照读的方式打开
- w表示按照写的方式打开
- a表示也是按照写的方式打开,把内容写到原有文件的末尾
关闭文件
使用close方法关闭已经打开的文件
f=open('d:/.../test.txt','r')
f.close()
因为一个系统的资源是有限的,因此一个程序能打开的文件个数,也是有上限的,在不需要使用文件的时候,资源就应该及时释放
写文件
使用write方法
f=open('d:/.../test.txt','w')
f.write('hello')
f.close()
- 使用r读方式打开,使用write会抛异常
- 使用w写方式打开,原文件内容会先被清空再写入
- 使用a追加的方式打开,原文件内容不会被清空
读文件
- 读文件内容需要使用‘r’的方式打开文件
- 使用read方式完成读操作,参数表示“读取几个字符”
1、指定读取几个字符
//这里指定encoding编码方式
f=open('d/test.txt','r',encoding=utf8)
//resulte为读取到的字符
resulte = f.read(2)
print(result)
f.close()
2、按行读取文件内容
f=open('d/test.txt','r',encoding=utf8)
for line in f:
print(f'line={line}',end='') //这里修改print的end参数值,让他不再自动换行
f.close()
3、使用readlines方法直接把整个文件所有内容都读出来,按照行组织到一个列表里
f=open('d/test.txt','r',encoding=utf8)
lines=f.readlines()
print(lines)
f.close()
*上下文管理器
为了防止打开文件后,因为中途抛异常或者提前返回而忘记关闭文件,因此需要使用上下文管理器,对f进行监管,当with对应的代码块执行结束,会自动对f进行close操作
with open('d:/test.txt','r',encoding='utf8') as f:
#进行文件处理的逻辑
实现文件查找工具
代码如下:
import os
inputPath=input('请输入要搜索的路径:')
pattern =input('请输入要搜索的关键词:')
for dirpath,dirname,filenames in os.walk(inputPath):
for f in filenames:
if pattern in f:
print(f'{dirpath}/{f}')
结果如下:
代码分析:
for dirpath,dirname,filenames in os.walk(inputPath)
- os.walk每次调用,都能自动去针对子目录进行递归的操作,只需要使用上述循环,就可以把所有的路径都获取出来
- dirpath遍历到当前位置,对应的路径是啥
- dirname当前目录下,都有哪些目录,是一个列表,可以包含多个目录名
- filenames当前目录下,都有哪些文件名,是一个列表,可以包含多个文件名
pip包管理器
pip是Python内置的包管理器,所谓的包管理器就是类似于我们平时使用手机的app应用商店一样,第三方库有很多,是不同的人,不同的组织实现的,为了方便大家整理,python官方提供了一个网站PyPI · The Python Package Index 来收集第三方库,我们可以通过pip工具下载PYPI上的库。
- pip在我们安装Python的时候就已经内置了,无需额外安装
- pip是一个可执行程序,就在python的安装目录中
使用一下命令,即可安装第三方库
pip install [库名]
注意:这个命令需要从网络上下载,使用时,需要保证网络畅通
安装成功后,即可使用import导入相关模块,即可进行使用
如果提示
‘pip’ 不是内部或外部命令,也不是可运行程序
或批处理文件。
说明没有正确把pip加入PATH中,可以手动把pip所在的路径手动加入到PATH环境变量中,也可以重装python,勾上如下选项:
生成二维码
二维码的本质是字符串,日常中的二维码一般是url,让用户跳转到网页
安装第三方库
pip install qrcode[pil]
生成二维码
import qrcode
img=qrcode.make("12345")
img.save("1.png")
保存的二维码在同级目录中
操作excel
- 读取excel可以使用xlrd模块
- 修改excel可以使用xlwt模块
安装xlrd
pip install xlrd==1.2.0
注意:此处要指定版本号安装,如果不指定版本号,则安装最新版,最新版里删除了对xlsx格式文件的支持
代码示例:
import xlrd
#先打开xlsx文件
xlsx=xlrd.open_workbook('d:/test.xlsx')
#获取到指定的标签页
table=xlsx.sheet_by_index(0)
#获取到表格中有多少行
nrows=table.nrows
#进行循环统计操作
total=0
count=0
for i in range(1,nrows):
classId=table.cell_value(行号,列号)
多媒体操作
播放声音
- playsound用于播放音频
- pynput用于监听键盘按键,注意版本不要用最新
pip install pynput==1.6.8
pip install playsound==1.2.2
监听键盘事件的代码示例:
from pynput import keyboard
def onRelease(key):
print(key)
listener=keyboard.Listener(on_release=onRelease)
listener.start()
listener.join()
要播放的音频放在同级的目录里
from playsound import playsound
playsound('/1.mp3')
原文地址:https://blog.csdn.net/lzb_kkk/article/details/142299287
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!