python学习
python相关知识点
。七十二。
这个作者很懒,什么都没留下…
展开
-
Yolo v8中的上下文管理器
上下文管理器中有__enter__()和__exit__()俩个特殊方法。__enter__()方法在with语句块执行前调用,负责获取资源并返回资源对象。with语句开始执行时,会先调用__enter__()方法中的内容用于获取资源,这一部分可以进行资源对象的操作。__enter__()方法返回self自身作为资源对象。上下文管理器通过with语句来自动获取和释放资源,确保资源的正确管理和关闭,避免资源泄露和错误。上下文管理器的使用:具备上下文管理器之后,可以直接使用with语句管理资源的获取和释放。原创 2023-09-20 08:18:36 · 115 阅读 · 0 评论 -
labelme中json转xml
读取json文件,删除不需要的信息,生成对应xml文件。在生成过程中需要注意坐标问题,看是否需要转换。原创 2023-02-22 13:31:54 · 1205 阅读 · 1 评论 -
python中的继承
super继承原创 2022-10-14 11:32:35 · 5853 阅读 · 1 评论 -
python中的比较方法
python中的方法原创 2022-10-14 10:53:36 · 2122 阅读 · 0 评论 -
for语句解析
1、[对(x)的操作 for x in 集合 if 条件],[对(x,y)的操作 for x in 集合1 for y in 集合2 if 条件]举一个简单的例子:x=[1,2,3,4],y=[5,6,7,8],让着两个list中的偶数分别相加,应该结果2+6,4+6,2+8,4+8下面用一句话来写:[a + b for a in x for b in y if a%2 == 0 and b%2 ==0] 2、对yolo v5for语句解读:for p in path if isi原创 2022-01-07 09:59:51 · 395 阅读 · 0 评论 -
Git使用记录
1、git push命令用于列出,创建或删除分支 git push列出当前分支2、git branch 新分支名; 创建新分支3、git checkout 新分支;切换到新分支2和3也可以合并为git checkout -b 新分支名4、git pull命令用于从远程获取代码并合并本地的版本。git pull origin master:brantest将远程主机 origin 的 master 分支拉取过来,与本地的 brant...原创 2021-12-06 14:21:54 · 74 阅读 · 0 评论 -
xml数据(二)
1、xml注释:2、如果遇到特殊字符需要使用实体转义:3、在xml中需要转义的字符:4、元素属性:(描述标签自身的额外属性),一个标签可以有多个属性,属性的值必须使用引号引起来;命名规则:数字字母下划线,不能以数字开头。(xml中属性就是鸡肋),解析xml文件中,属性会带来额外的代码。5、<![CDATA[.....不解析内容.....]]>;特殊字符较少时,使用实体替换,较多时使用CDATA,必须大写。...原创 2021-10-25 16:47:43 · 150 阅读 · 0 评论 -
xml数据
学习视频:XML教学视频!(黑马程序员精讲 XML 知识!)_哔哩哔哩_bilibili1、xml数据与HTML数据非常相似。最主要的功能是数据传输(由一个服务器到另一个服务器或者一个网站到另一个网站); 配置文件configure.xml。 存放数据当作小型数据库。 规范数据格式,使数据具有结构性,易读易处理。2、xml指的是可扩展性标记语言;被发明的目的是传输和存储数据,而不是展示数据(html展示数据,具有大小);...原创 2021-10-25 15:33:37 · 2037 阅读 · 0 评论 -
pathlib学习(二)
1、删除文件,判断路径是否为文件或文件夹# 删除文件夹.rmdir(),删除文件夹,文件夹必须存在,并且必须为空,否则抛出异常path = basepath / "test/a/b/c"path.rmdir()# 判断是否是文件is_file()或文件夹is_dir()test_path = basepath / "test"print(test_path.is_dir)print(test_path.is_file)2、遍历文件文件夹,查找指定类型文件# 遍历文件夹.i原创 2021-10-02 09:18:38 · 1205 阅读 · 0 评论 -
pathlib模块学习(一)
1.新的文件操作库,替代os库先从pathlib库中导入Path模块from pathlib import Path先进行实例化,获取当前文件的绝对路径和相对路径path = Path(__file__) # 获取当前文件的相对路径basepath = Path().resolve() # 获取当前文件的绝对路径Path属性:path = basepath / "pathlib-课件.py"print(path)原创 2021-10-01 20:50:35 · 2033 阅读 · 2 评论 -
np.bincout()详解
参考:numpy.bincount详解_踩风火轮的乌龟-CSDN博客_np.bincountnp.bincount(x,weights,minlength),x为指定数组,weights是生成bin后每一个元素的权重,minlength是bin的最大长度,不指定的情况下为默认的x中的最大值。out[n] += weight[i]# x中最大的数为7,bin的数量为8,那么它的索引值为0-7x = np.array([0, 1, 1, 3, 2, 1, 7])# 0出现了1次,1出现了.原创 2021-09-22 13:57:13 · 433 阅读 · 0 评论 -
将指定字符串替换为其它字符串
self.path = path# 将self.path中的image1替换为image2path2 = self.path.replace('image1', 'image2')原创 2021-09-22 10:24:11 · 53 阅读 · 0 评论 -
查找图像对应的txt(label文件)
代码:原创 2021-09-17 21:48:02 · 365 阅读 · 0 评论 -
图像重命名,并且对应的xml文件移动并重命名
import osimport shutildef rename_file(path,new_path,xml_path,new_xml): # 打开源文件图像 file = os.listdir(path) for i in range(len(file)): # 获得图像扩展名 (name,extent) = os.path.splitext(file[i]) # 获得图像对应的xml文件 xml_file .原创 2021-09-17 21:27:23 · 208 阅读 · 1 评论 -
代码中的os应用
1、os.environ['CUDA_VISIBLE_DEVICES'] = opt.gpus_str,带赋值的情况下表示设置一个环境变量名。原创 2021-08-30 15:49:06 · 100 阅读 · 0 评论 -
python之argparse模块
1、当代码需要频繁修改参数时需要添加该模块,可自动生成帮助文档和使用手册。2、首先生成parser对象。通过add_argument进行参数设置,参数名称,nargs代表参数的取值,type指参数类型,default设置默认值,help写帮助信息,action参数在命令行出现时使用动作的基本类型,store_True默认值是false,另一个相反。加载完所有参数,需要应用parser的parse_args进行解析。(将参数对象转换为字符串,并设为命名空间,即...原创 2021-08-26 20:14:58 · 73 阅读 · 0 评论 -
python之json数据库
1、.json是一种数据格式。2、描述一个json对象,{"",""},“”中分别是key和value.如果json数据没有{},则说明该数据是一个array类型的json数据[]。一个复杂的json对象,用{}开头结尾,对象中有个属性employees,他的信息是一个列表,列表中有多个json对象。三个与姓名相关的对象封装到employees属性中,再放入另一个大的对象中。3、访问:4、python中的json库,将json字符串生成python对象load,python对象转换.原创 2021-08-26 20:02:25 · 4276 阅读 · 4 评论 -
日志管理(三)
import logging# 提供应用程序的调用接口,(创建记录器)logger = logging.getLogger("deblog")logger.setLevel(logging.INFO)consolehandler = logging.StreamHandler()consolehandler.setLevel(logging.DEBUG)# 不指定日志级别,默认将会使用logger级别fileHandler = logging.FileHandler(filename=.原创 2021-08-22 12:27:55 · 76 阅读 · 0 评论 -
日志管理(二)
1、logging模块高级用法,Loggers记录器,每个记录器相当于一根笔,一个日志有一个记录器。Handlers处理器,讲记录器产生的日志发送至目的地(consle,文件,也可发送至e-mail,或者送到http协议等)。Filters过滤器,决定哪些日志会被输出。Formatters格式化器,格式化输出,设置日志内容组成结构和消息字段。日志工作过程结构:2、创建记录器:通过name参数区分记录器;决定日志记录级别;# 提供应用程序的调用接口logger = logging.ge原创 2021-08-22 10:52:04 · 74 阅读 · 0 评论 -
python中的PIL处理旋转图像
1、PIL读取的图像包含方向信息。原创 2021-08-19 18:12:19 · 628 阅读 · 0 评论 -
pathlib模块学习
1、pathlib模块用来处理文件和文件夹操作,可跨平台使用。2、使用操作符进行路径拼接和分解:分为两种Pah对象和Path对象拼接,Path对象和字符串拼接或者字符串和Path对象拼接。from pathlib import Pathp = Path() # 输出为一个点p = Path('a', 'b', 'c/d') # 输出为'a/b/c/d',相当于使用/拼接。a = Path()a = a/'a'原创 2021-08-18 17:43:45 · 975 阅读 · 0 评论 -
pyymal模块
1、对python数据和ymal数据进行相互转换。import yaml# 将一个python数值转换为yaml文件dict_data = {'a':1, 'b':2, 'c':3}# as是该文件的别名with open('data.yaml', 'w', encoding = 'UTF-8') as yaml_file: yaml.safe_dump(dict_data, yaml_file)yaml_string = yaml.safe_dump(dict_data)p原创 2021-08-18 17:02:24 · 178 阅读 · 0 评论 -
日志模块的使用
1、log = logging.getLogger(__name__)对日志进行初始化,name可不填。多次使用相同的名字调用getLogger()会一直返回相同的Logger对象的引用。log.info()程序正常运行过程中产生的一些信息。2、os.getenv(key,default = None)返回环境变量键得值(存在情况),否则返回默认值...原创 2021-08-18 16:42:11 · 539 阅读 · 0 评论 -
numpy学习(一)
1、np.random.randint(low,high,size,dtype),生成该范围内的数据2、np.argsort(a,axis,kind,order) 按照指定轴排序,返回排序之后的序号3、np.unqiue(A,return_index = True,return_inverse = True),将数组中的元素去重,返回重新排序中的元素在旧列表中的索引,return_inverse = True返回旧列表元素在新列表中的索引。...原创 2021-08-18 13:52:43 · 60 阅读 · 0 评论 -
PIL常见操作学习
1、Image.fromarray(img1) 把图像1从数组转换为图像2、img1.paste(img2,local,mask) 把img2粘贴到img1上,local给定二元组或四元组(),使用图像mask对应的模板图像来填充图像3、获得物体的bbox: bbox = Image.fromarray(img2).getbbox()4、使用Image函数获得图像的尺寸: w,h = img2.size...原创 2021-08-18 09:47:10 · 289 阅读 · 0 评论 -
Matplotlib绘图工具(四)
1、subplot多图和为一图显示# 创建一个绘图窗口plt.figure()# 给定位置描述,图像分为2行2列,第一个位置显示某张图片plt.subplot(2,2,1)plt.plot([0,1], [0,1])# 第二个位置显示某张图片plt.subplot(222)plt.plot([0,1], [0,1])plt.subplot(223)plt.plot([0,1], [0,1])plt.subplot(224)plt.plot([0,1], [0,1])原创 2021-08-06 20:48:40 · 252 阅读 · 0 评论 -
Matplotlib绘图工具(三)
1、散点图n = 1024X = np.random.normal(0,1,n)Y = np.random.normal(0,1,n)# 颜色T = np.arctan2(Y,X)# c = T,颜色;对应的colormap,T中某一个值对应到colormap中某一个颜色,采用默认值,透明度0.5plt.scatter(X,Y, s = 75, c = T,alpha = 0.5)plt.xlim((-1,1))plt.ylim((-1,1))# 隐藏所有的tickspl原创 2021-08-05 17:30:41 · 120 阅读 · 0 评论 -
Matplotlib绘图工具(二)
1、绘制图例# 该函数具有返回值plt.plot(x, y2, label = 'up')plt.plot(x, y1, color = 'red', linewidth = 1.0, linestyle = '--', lable = 'down')# 绘制图例plt.Legend()plt.show()l1, = plt.plot(x, y2, label = 'up')l2, = plt.plot(x, y1, color = 'red', linewidth = 1.0,原创 2021-08-05 17:10:24 · 231 阅读 · 0 评论 -
Matplotlib绘图工具
主要模块:matplotlib.pyplot;numpy(制造数据)1、最简单的绘图:plt.plot()x = np.linspace(-1,1,50)y = 2*x + 1plt.plot(x,y)plt.show()2、第一个:回到主界面;第五个放大某一细节,第四个拖动,第六个边框设置。3、figure:(一个大窗口,可以有好几个窗口。)一个窗口可以防止多张图片。import matplotlib.pyplot as pltimport numpy as np.原创 2021-08-05 11:09:41 · 137 阅读 · 0 评论 -
Python中线程与进程的区别
1、线程:threading,能够完成多任务,比如一个QQ中多个聊天窗口。(轻量级)在同一时间分批量去做很多事情。减少运算时间。import threadingdef thread_job(): print('this is an added Threaf,number is %s' % threading.current_thread())def main(): add_thread = threading.Thread(target = thr...原创 2021-07-28 11:39:40 · 442 阅读 · 0 评论 -
Python模块
1、容器:数据的封装函数:语句的封装 类:方法和属性的封装 模块:就是程序。2、为了方便调用模块,直接把模块的.py文件放入与exe相同的目录下,即可直接导入模块。函数名即命名空间。3、导入模块 import 模块名 from 模块名 import 函数名import 模块名 as 新名字...原创 2021-07-27 22:20:09 · 66 阅读 · 0 评论 -
Python迭代器、生成器
1、迭代器有序列:列表()、元组[]、字符串、字典都支持迭代操作。 通常使用for语句进行迭代。links = {'a' : 100; 'b' : 200, 'c', 300}for each in links: print('%s %s' % (each, links[each]))2、迭代器的内置函数:iter(),next()iter()可以得到该函数的迭代器next()迭代器返回下一个值。3、迭代器的魔法方法:__iter__();__next...原创 2021-07-27 22:04:45 · 48 阅读 · 0 评论 -
Python魔法方法、算术运算
1、反运算: 例如两个变量相加,第一个变量承担主动角色,执行相加运算,当第一个变量不存在加的属性,则需要运用第二个变量的加的属性,即第二个变量的反运算。class Nint(int): def __radd__(self,other): return int.__sub__(self,other)# a = Nint(5)b = Nint(3)a + b# 结果为8,执行了a中的相加属性1 + b# 结果为2,因为a中没有相加属性,故...原创 2021-07-27 21:17:41 · 85 阅读 · 0 评论 -
Python析构与构造
1、python中的魔法方法 __init__等同于c++中的构造函数。该函数中不能有返回。class Rectangle: def __init__(self,x,y): self.x = x self.y = yself.x是实例化类之后的实例对象的局部变量;x是传入的参数 __new__()才是函数运行时会被调用的方法。通常是返回一个实例化对象。# 类继承不可改变的类,故需要重写__new__():cl...原创 2021-07-27 20:08:01 · 101 阅读 · 0 评论 -
Python学习:BIF
1、issubclass(class,classinfo)object是所有类的基类。当第一类是第二类的子类时,函数返回True. 任何一个类都被认为是自身的子类。 classinfo可以是类对象组成的元组,只要class与其中任何一个候选类的子类,则返回True.2、isinstance(object,classinfo),判断该实例object是否属于该类。 第一个参数不是实例化对象,则永远返回false. 第二个参数不...原创 2021-07-26 21:04:42 · 73 阅读 · 0 评论 -
python学习(四)组合
1、组合:把类的实例化放到新类中,即组合。(具有横向关系的类放到一起需要组合,具有纵向关系的类放到一起需要继承)class Turtle: # 不实例化则不需要加括号 def __init__(self, x): self.num = xclass Fish: def __init__(self, x): self.num = xclass pool: def __init__(self, x, y原创 2021-07-19 19:50:16 · 661 阅读 · 0 评论 -
Python中enumerate学习
该函数一般用于循环,在遍历中可以获得索引和元素值。原创 2021-07-19 17:29:01 · 76 阅读 · 0 评论 -
Python控制台
可以查看属性,变量.属性,可以返回相应的数值。原创 2021-07-17 21:14:37 · 102 阅读 · 0 评论 -
Python学习(三)继承(super)
继承:多个具有共同属性的类class 类名(父类): 如果子类中定义与父类同名的方法和属性,则会自动覆盖父类的方法和属性。原创 2021-07-19 17:27:58 · 273 阅读 · 0 评论 -
Python学习——面向对象
1、什么是面向对象:模拟真实世界的过程,把数据和代码封装在一起。什么是封装:把数据放入列表,定义一个函数都称为封装。对象:属性+方法,动态特性称为方法,静态特性称为属性。OO:object oriented面向对象,特性:封装、继承、多态。(不同对象对同一消息进行的响应) OOP:面向对象编程2、self(相当于C++中的this指针) self,说明该类是哪个对象在调用,然后传入该对象的属性。3、python魔法方法: ...原创 2021-07-16 12:31:17 · 75 阅读 · 0 评论