常用工具
读入图片
path 为图片路径
Img 类型为 <class 'PIL.PngImagePlugin.PngImageFile'>
from PIL import Image
Img = Image.open(path)
# 读入图片,path 为图片路径
# Img 类型为 <class 'PIL.PngImagePlugin.PngImageFile'>
将图片Img转为bytes类型(二进制)(用于后续传输和处理)
f = io.BytesIO()
img.save(f, format='PNG')
data = f.getvalue()
print(type(f))
print(type(data))
print(data)
输出
获得文件夹下的目录
import os
os.listdir(path)
os.listdir(path) 用于返回指定路径下所有文件和文件夹的名称,返回类型为 list,返回的 list 中每个元素为 string 类型
函数 isinstance(a, class)
用于判断变量 a 是否为 class 类型,返回 bool 值
函数os.path.join(str1, str2, ...)
用于将多段路径合并,每个参数值都为 string 类型
python函数定义时,参数列表中的 冒号: 和 箭头 ->
冒号代表推荐传入参数的参数类型,箭头代表推荐的函数返回值类型
def sum(num1:int, num2:int)->int:
return num1 + num2
注意,python 中函数可以返回多个值,这时 python 自动将多个返回值组成一个 ‘元组tuple’ 返回。
def show(num1, num2):
return num1, num2
if __name__ == '__main__':
print(type(show(13, 43)))
print(show(13, 43))
输出
如果希望返回 list 类型,则可以对函数的输出加上 [ ]
def show(num1, num2):
return [num1, num2]
if __name__ == '__main__':
print(type(show(13, 43)))
print(show(13, 43))
输出
获得当前时钟 || 获取程序的运行时间
import time
start_time = time.time()
end_time = time.time()
print(end_time - start_time)
python 生成器 generator
在列表数据量较大时,直接申请较大的空间有些浪费,这时可以通过生成器逐步创建列表。
使用 for-in 即可创建生成器
在生成器外加 [ ],即可依据生成器生成 list
sum() 函数
此外,sum() 函数可用于求列表中值的和,也可以用于求 list<bool> 中真值的个数
sum() 函数的参数既可以是一个列表,又可以是生成器,计算时可以看作:先通过生成器产生列表,在对列表计算。
if __name__ == '__main__':
data = [1,0,0,1,2,4,36,0,2,4,0]
a1 = (e == 0 for e in data)
a2 = [e == 0 for e in data]
print(f'a1: {type(a1)}')
print(a1)
num_zero1 = sum(a1)
print(num_zero1)
print(f'a2: {type(a2)}')
print(a2)
print(sum(a2))
num_zero1 = sum(e == 0 for e in data)
print(f'num_zero1: {type(num_zero1)}')
print(num_zero1)
num_zero2 = sum([e == 0 for e in data])
print(f'num_zero2: {type(num_zero2)}')
print(num_zero2)
print(sum(data))
输出:
其他访问生成器的方式:
1)通过 for-in 循环访问生成器
2)通过 next() 函数访问生成器
if __name__ == '__main__':
data = [1,0,0,1,2,4,36,0,2,4,0]
generator = (i for i in data)
print('method1:')
for i in generator:
print(i)
generator = (i for i in data)
print('method2:')
print(next(generator))
print(next(generator))
print(next(generator))
generator.__next__() # generator 向前移动一位
print(next(generator))
print(next(generator))
输出:
ConfigParser 的用法
ConfigParser 用于封装一些常量,比如数据库的用户名、密码等