更新于 

python

python 工具类

python下载镜像源

1
2
3
4
5
6
7
8
## 清华源
pip install *** -i "https://pypi.tuna.tsinghua.edu.cn/simple" --trusted-host pypi.tuna.tsinghua.edu.cn

## 豆瓣源
pip install *** -i "http://pypi.doubanio.com/simple/" --trusted-host pypi.doubanio.com

## 同济源
pip install -i "https://pypi.mirrors.ustc.edu.cn/simple" --trusted-host pypi.mirrors.ustc.edu.cn

python 更新pip

1
python -m pip install --upgrade pip

python 批量更新包(pip-review)

参考:https://www.cnblogs.com/pythonista/p/12944444.html

1
2
pip-review
pip-review -- auto

python installer(.py文件打包)

参考:http://c.biancheng.net/view/2690.html

1
pyinstaller -F app.py

对于音乐文件需使用.wav格式

对于资源打包,可参考:https://blog.csdn.net/COLDRAIN_END/article/details/104385472

该方法可以把 音频,视频,图片,文本,压缩包,配置文件,脚本 等各种文件打包进exe中。

该方法思路是将文件转化为Base64 数据,运行时会自动解压到当前目录,如果程序需要调用这些文件时,就可以调用使用。

转为Base64可使用如下在线工具

https://www.giftofspeed.com/base64-encoder/

另,在使用此方法时注意Base64数据的变量类型必须为字符串,且只能放在一行。在pycharm中可能会因为复制字符串的大小有限制而不能成功,可以通过.txt实现

读取文件的代码示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import os
import base64
import DataFile # 导入自建模块 "DataFile.py"


def write_file(data, route):
get_file = base64.b64decode(data) # 将base64数据进行解析

with open(route, 'wb') as f_Obj: # 输出文件到指定位置
f_Obj.write(get_file)

#-----调用函数,传入对应的 base64数据 和 输出文件的位置,生成依赖的资源文件-----#
write_file(DataFile.picture, "./测试图片.jpg")

#-----程序运行区域-----#
print("Hello world !")
input() # 暂停

#-----运行结束后删除目录下的依赖文件-----#
os.remove("./测试图片.jpg")

Python中播放音乐pygame

参考:https://www.cnblogs.com/ocean1100/p/9319891.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
pygame.init() #进行全部模块的初始化,
pygame.mixer.init() #或者只初始化音频部分
pygame.mixer.music.load('xx.mp3') #使用文件名作为参数载入音乐 ,音乐可以是ogg、mp3等格式。载入的音乐不会全部放到内容中,而是以流的形式播放的,即在播放的时候才会一点点从文件中读取。
pygame.mixer.music.play()#播放载入的音乐。该函数立即返回,音乐播放在后台进行。

play方法还可以使用两个参数
pygame.mixer.music.play(loops=0, start=0.0) #loops和start分别代表重复的次数和开始播放的位置。
pygame.mixer.music.stop() #停止播放,
pygame.mixer.music.pause() #暂停播放。
pygame.mixer.music.unpause() #取消暂停。
pygame.mixer.music.fadeout(time) #用来进行淡出,在time毫秒的时间内音量由初始值渐变为0,最后停止播放。
pygame.mixer.music.set_volume(value) #来设置播放的音量,音量value的范围为0.0到1.0。
pygame.mixer.music.get_busy() #判断是否在播放音乐,返回1为正在播放。
pygame.mixer.music.set_endevent(pygame.USEREVENT + 1) #在音乐播放完成时,用事件的方式通知用户程序,设置当音乐播放完成时发送pygame.USEREVENT+1事件给用户程序。
pygame.mixer.music.queue(filename) #使用指定下一个要播放的音乐文件,当前的音乐播放完成后自动开始播放指定的下一个。一次只能指定一个等待播放的音乐文件。

导入其他文件函数

  1. 新建包 from my.xx.py import
  2. 新建文件夹同理

因python会将环境下的文件夹默认为包

把普通文件夹编程一个包,添加一个文件__init__.py

python函数类

isdigit()和is.numeric()的区别

参考: https://www.cnblogs.com/philkang/p/8667035.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
isdigit()
True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
False: 汉字数字
Error: 无

isdecimal()
True: Unicode数字,,全角数字(双字节)
False: 罗马数字,汉字数字
Error: byte数字(单字节)

isnumeric()
True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
False: 无
Error: byte数字(单字节)

map()函数

语法:

1
map(function, iterable, ...)

第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

列表推导式

1
x for x in ... if...

lambda函数

1
lambda x: x+1

仅仅为了使代码更简介,大部分情况下可用列表推导式完成,降低代码的可读性

python.numpy

numpy.reshape

官方文档:https://numpy.org/doc/stable/reference/generated/numpy.reshape.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
a = range(1:7)
>array([1,2,3,4,5,6])

a.reshape(2,3)
>array([[1,2,3],
[4,5,6]])
a.reshape(2,3,order = "F")
>array([[1,3,5],
[2,4,6]])

b = a.reshape(2,3)

b.reshape(-1,1)
>array([[1],
[2],
[3],
[4],
[5],
[6]])
b.reshape(1,-1)
array([[1, 2, 3, 4, 5, 6]])

flatten()函数和ravel()函数

参考:https://www.cnblogs.com/mzct123/p/8659193.html

这两个函数都可以扁平化矩阵

但后者的改变也会改变原矩阵中相应的值

numpy.argmax

提取最大值索引

numpy.bincount()

统计数组中值出现的次数