python常规操作
如何将字符串中的所有英文字母转为小写
str.lower()方法
如何取某个文件夹内的所有图片
import glob
folder_path = 'your_folder_path/*.jpg' # 指定文件夹路径和文件扩展名
image_files = glob.glob(folder_path)
for file in image_files:
print(file) # 这里可以根据需要,对每个文件进行进一步的处理
提取路径中的文件名
在Python中可以使用os.path模块的basename()方法来只提取路径中的文件名,不包含目录路径:
python
import os.path
path = '/usr/local/bin/python'
print(os.path.basename(path))
basename()会返回路径最后的文件名部分。另外os.path还提供了其他处理路径的有用方法:- dirname() :返回目录路径部分
- join() :拼接目录和文件名
- splitext(): 分离文件名和扩展名
- split() :分离目录路径
如何按规律访问散列的按某个规律命名的变量
# 假设这是全局变量
x1 = 10
x2 = 20
x3 = 30
# ...
for i in range(1, 4): # 假设你知道有 3 个变量
var_name = f'x{i}'
value = globals()[var_name]
print(f"{var_name} = {value}")
通过pickle和共享内存加速大文件的读取
import pickle
from multiprocessing import shared_memory
# 创建一个字典
example_dict = {'key': 'value'}
# 使用pickle序列化字典
serialized_dict = pickle.dumps(example_dict)
# 创建共享内存并写入数据
shm = shared_memory.SharedMemory(create=True, size=len(serialized_dict))
shm.buf[:len(serialized_dict)] = serialized_dict
# 在另一个地方读取并反序列化数据
shm = shared_memory.SharedMemory(name=shm.name)
data = shm.buf[:len(serialized_dict)]
deserialized_dict = pickle.loads(data)
print(deserialized_dict) # 输出: {'key': 'value'}
# 清理
shm.close()
shm.unlink()
pands相关
pandas取标题行
.columns.values.tolist()
pandas判断某个值是否为nan:
pd.isnull(data)
pandas读取excel
python
import pandas as pd
df = pd.read_excel('example.xlsx')
这会直接将Excel中的数据读取为一个Pandas DataFrame。然后就可以使用pandas的各种功能分析和处理这个DataFrame了:
python
print(df.head()) # 打印前5行
print(df['Column1'].sum()) # 某列求和
df.groupby('Category').size() # 按Category分组计数
Pandas比openpyxl更适合用于分析Excel数据,而openpyxl更侧重于读取/写入Excel文件。另外,如果Excel文件较大,可以使用read_excel的chunksize参数分块读取:
python
df = pd.read_excel('large_file.xlsx', chunksize=1000)
for chunk in df:
# 对每1000行数据进行处理
print(chunk.shape)
pandas dataframe访问某行
df.iloc[i]#i为row index
numpy相关
如何根据一个数组的元素顺序对另一个数组进行排序
import numpy as np
times = np.array([120, 100, 130, 150])
scores = np.array([80, 90, 85, 95])
order = np.argsort(times)
sorted_scores = scores[order]
print(sorted_scores)
# [90 85 95 80]
环境相关
windows 如何启用某个python作为环境
在命令窗口中进入虛拟环境所在的目录,然后运行以下命令:
.\Scripts\activate
查看当前使用的python的安装路径
import sys
pythonpath = sys.executable
print(pythonpath)
如何制作整合包
创建虚拟环境
首先确保本地环境已经安装好了Python3开发环境,如果没有,请移步:一网成擒全端涵盖,在不同架构(Intel x86/Apple m1 silicon)不同开发平台(Win10/Win11/Mac/Ubuntu)上安装配置Python3.10开发环境,囿于篇幅,这里不再赘述。
随后在克隆自己的项目,用于打包,这里我们以Bert-vits2-2.3的项目为例子:
git clone https://github.com/v3ucn/Bert-vits2-V2.3
随后进入项目的根目录:
cd Bert-vits2-V2.3
正常流程下我们会直接执行pip install -r requirements.txt在当前环境下安装依赖。
但是我们现在不使用当前开发环境,而是使用虚拟环境。
首先创建一个虚拟环境的工作目录:
mkdir venv
随后进入venv目录
cd venv
创建独立的虚拟环境:
python -m venv .
该命令python -m venv <目录位置> 可以创建一个独立的Python3运行环境。venv目录里面有python3、pip3等可执行文件,实际上是链接到Python系统目录的软链接。
此时,执行激活命令就可以进入该虚拟环境venv:
E:\work\Bert-vits2-2.3\venv>.\Scripts\activate
(venv) E:\work\Bert-vits2-2.3\venv>
可以看到,当前命令行的前缀有一个(venv)代表我们现在处于虚拟环境之中。
注意该虚拟环境和当前系统的Python3环境是隔离的。
我们也可也执行命令退出虚拟环境venv:
(venv) E:\work\Bert-vits2-2.3\venv>.\Scripts\deactivate.bat
E:\work\Bert-vits2-2.3\venv>
通过deactivate命令可以推出虚拟环境。
用虚拟环境venv给项目安装依赖
创建好了虚拟环境之后,我们就可以给当前的项目(Bert-vits2-2.3)安装依赖了:
.\venv\Scripts\pip.exe install -r .\requirements.txt
注意,这里所有的依赖文件都会安装到虚拟环境目录,即venv。
如果愿意,也可以执行命令来升级虚拟环境的pip软件:
.\venv\Scripts\python.exe -m pip install --upgrade pip
完成依赖的安装以后,可以执行命令来查看项目的依赖列表:
E:\work\Bert-vits2-2.3>.\venv\Scripts\pip.exe list
Package Version
------------------ ------------
certifi 2023.11.17
charset-normalizer 3.3.2
colorama 0.4.6
coloredlogs 15.0.1
filelock 3.13.1
flatbuffers 23.5.26
ftfy 6.1.3
humanfriendly 10.0
idna 3.6
imageio 2.33.1
Jinja2 3.1.2
lazy_loader 0.3
MarkupSafe 2.1.3
mpmath 1.3.0
networkx 3.2.1
numpy 1.23.5
onnx 1.14.0
onnxruntime-gpu 1.16.2
opencv-python 4.7.0.72
packaging 23.2
Pillow 9.5.0
pip 23.0.1
protobuf 4.23.2
pyreadline3 3.4.1
PyWavelets 1.5.0
regex 2023.12.25
requests 2.31.0
scikit-image 0.21.0
scipy 1.11.4
setuptools 65.5.0
sympy 1.12
tifffile 2023.12.9
tk 0.1.0
torch 2.0.1+cu118
torchaudio 2.0.2+cu118
torchvision 0.15.2+cu118
tqdm 4.66.1
typing_extensions 4.9.0
urllib3 2.1.0
wcwidth 0.2.12
也可以通过pip的show命令来查看依赖的具体位置:
E:\work\Bert-vits2-2.3>.\venv\Scripts\pip.exe show numpy
Name: numpy
Version: 1.23.5
Summary: NumPy is the fundamental package for array computing with Python.
Home-page: https://www.numpy.org
Author: Travis E. Oliphant et al.
Author-email:
License: BSD
Location: e:\work\Bert-vits2-2.3\venv\lib\site-packages
Requires:
Required-by: imageio, onnx, onnxruntime-gpu, opencv-python, PyWavelets, scikit-image, scipy, tifffile, torchvision
可以看到,这里numpy库就已经被安装到了e:\work\Bert-vits2-2.3\venv\lib\site-packages目录。
随后,我们执行项目中的脚本就可以用虚拟环境来执行,如:
.\venv\Scripts\pip.exe webui.py
如果不想通过命令执行,也可以编写bat脚本:
call venv\Scripts\activate.bat
python marching_squares.py
至此我们就完成了Bert-vits2-2.3虚拟环境依赖的安装,只需把Bert-vits2-2.3目录压缩,就拿到了一个Bert-vits2-2.3项目的整合包。
如何关闭conda在终端的自动启动
conda config --set auto_activate_base false
画图相关
如何根据某个数组对折线图上色
import matplotlib.pyplot as plt
import numpy as np
# 示例数据
x = np.random.rand(50) # 随机生成x坐标
y = np.random.rand(50) # 随机生成y坐标
colors = np.random.rand(50) # 颜色数组,用于决定每个点的颜色
# 绘制散点图
plt.scatter(x, y, c=colors, cmap='viridis') # 使用viridis颜色映射
# 添加色条
plt.colorbar()
# 显示图表
plt.show()