随笔分类 - Python操作
记录基本的python中遇到的操作或者知识点,或者是pandas的一些操作
摘要:python作为一个动态语言,可以对变量不进行类型定义就使用,这就导致随着项目的增大,我们很难回顾以前某些模块中每一个变量是什么类型(特别是在函数定义里,如果不进行类型检查,很可能对一个str类型进行了()调用等等),为了在编码时能够让编译器提醒我们,也防止在运行时出现问题,采用静态变量审查工具在我
阅读全文
摘要:我们在之前已经介绍过python的多进程/线程的一种使用(Python使用multiprocessing进行多线程和多进程操作),这里我们再介绍模块concurrent.futures,它是对线程池和进程池的一个高层抽象,它简化了异步执行任务的流程,而模块multiprocessing提供了更全面的
阅读全文
摘要:消息队列在日常开发中比较常用的开发中间件,每家大厂一般都会具有自己的消息队列服务器。本文主要讲述Python中如何使用RocketMQ的相关SDK。希望大家在阅读本文前可以先了解一下RocketMQ的基本知识。 使用 pip install rocketmq -i https://pypi.tuna
阅读全文
摘要:redis包的使用找到了一个好文:Python操作Redis,你要的都在这了! - John-Python - 博客园 (cnblogs.com),文章中已经非常详细的介绍了python的redis包的使用。本文只给出了一些案例使用案例,后序后时间会加入双删,双写数据库的工具包(等我找到成熟的项目代
阅读全文
摘要:Hydra 是一个开源 Python 框架,可简化研究和其他复杂应用程序的开发。关键特性是能够通过 组合动态创建分层配置,并通过配置文件和命令行覆盖它 。在机器学习项目中,我们有多个版本的模型参数和架构,并且一些训练参数如文件链接,学习率,版本等信息更希望通过命令行来进行指定,以前的方法是需要自己实
阅读全文
摘要:Python的标准库中os模块已经可以操作文件了,但是具有很多局限性(比如不能复制文件),因此Python的另一个标准库shutil对文件/文件夹的移动,复制,删除文件夹,压缩,解压等操作做了增强,更加方便用户进行使用。 1、复制文件/文件夹(shutil.copy(src,dst)) 1.1 复制
阅读全文
摘要:在项目中我们常常需要打印日志,特别是在系统级项目上一般都会有自己日志模块,下面我们将介绍下Python中自带的logging模块(注意这是模块的名称并不是类) 一、基本使用 logging是一个包的名称,我们真正使用的是logging.Logger这个类。但是我们不能使用常规的方式进行初始化,而是使
阅读全文
摘要:当我们在开发HTTP服务时(接口服务),由于很多从内部引发的 Python 异常,会触发标准 HTTP 非 200 响应的视图。为了让前端有着更好的视图体验(如果因为内部异常,会返回给前端/调用方更好的一个页面/返回)。对于我们来说,给予调用方一个固定的返回格式时非常重要的(因此通过HTTPExce
阅读全文
摘要:在多进程/多线程的学习后,终于来到了“文件锁”这个概念阶段,文件锁的存在就是由于在多进程/线程操作时会对某个文件进行频繁修改,而导致读取与修改的数据产生不同步。典型场景有以下: 进程1对文件A进行写入操作,写入一条记录a,持续时间时20s才能完成这个文件的写入。此时进程2在第5s时也开始对文件A进行
阅读全文
摘要:在Python使用multiprocessing进行多线程和多进程操作 这篇文章中介绍了使用多线程的方式对一些I/O操作(文件读写、网络请求,这些操作不用等待其结束,在此期间可以做其他事情)进行加速。而本篇文章介绍的协程可以理解成“微线程”,不开辟其他线程,只在一个线程中执行,并且执行函数时可以被中
阅读全文
摘要:在Python中我们通常对类的操作中,常常会判定某个属性是否是在这个类中,也会动态的为这个类更改\增添的某些属性和方法。这时我们会常常用到这个几个重要的Python内置函数,分别是getattr()、setattr()、hasattr()。 1、getattr(obj, name[, default
阅读全文
摘要:Python3.8之后,编译器更新了一种新特性——赋值表达式。赋值表达式在很多情况下可以减少代码的重复,赋值表达式就是将计算后变量的值当成整个表达式的值。 我们直接来看例子。 count = 10 if count < 4: print("逻辑一") else: print("逻辑二") 上述代码的
阅读全文
摘要:本章将介绍Python中正则表达式,本文将会基于Python的标准库re模块讲解正则表达式。 1、正则表达式的基本使用 1.1、re.search(正则表达式,待匹配文本) 我们可以使用re.search查询待匹配文本中是否存在可以匹配上的字符串,直接上例子。 import re match = r
阅读全文
摘要:在Python读取文件中,最让人头疼的就是对文本文件的读取,因为对文本文件读取涉及到编码。如果一个采用GBK编码的文件,使用UTF-8进行解码,那么得到的字符就会产生乱码,因此作为程序员,我们在开发中理解正在处理的是那种字符串数据非常重要。 1、Python中的字符串 实际上Python语言中有两种
阅读全文
摘要:Python这门语言中,由于存在动态声明类属性的存在,我们很难说xxx是xxx,比如如何确定你正在处理的对象是一个列表?针对上面问题,我们可以使用isinstance(变量,list)的方式,如果得到True那么意味着变量是一个列表。但有时候我们并不是真的想得操作一个list,或者说如果我只想确认,
阅读全文
摘要:类工厂顾名思义就是创造类的工厂(函数),也就是函数的返回值是一个类对象。我们可以使用这个类对象生成实例。而每一次执行函数都会得到一个"不同"(地址不同)的类对象,我们可以用不同的变量去接收这些类对象,并使用这些个类对象完成实例化得到类的实例。因此类工厂最大的作用就是,可以不用在执行前(编码时)就确定
阅读全文
摘要:我们需要重新认识一下type。我们平常都是使用 type(对象) 来确定某一个对象是属于哪个类的(换句话表述就是,这个对象是由谁生成得到的),这也是最常见的用法,但是我们要意识到Python中的“类”其实也是一个对象。如果我们自定义了一个类A,使用type(A)会出现什么情况呢?看代码: class
阅读全文
摘要:Python中对于一个类来说,有着非常多的魔法方法(以__xxx__方法是进行定义的),这些方法在Python解释器中会被特殊的事件所触发调用。比如比较对象大小,实例对象的创建等很多重要时刻,对应的魔法方法都会被解释器调用。但并不是当我们自己编写一个类的时候,这些魔法方法都需要被重写(object这
阅读全文
摘要:通常我们使用with关键字,作为上下文管理器进入标志。上下文管理器是一个包装任意代码块的对象,当退出上下文管理器时,保证相关的资源能够得到正确处理。最常用的用法是打开文件时使用上下文管理器,保证文件能被关闭,无论代码块中是否发生异常都会执行关闭的操作。例如下面的代码: with open("上下文管
阅读全文
摘要:在本博客的前面部分其实已经介绍过Python中装饰器的基本使用了(Python迭代器、生成器、装饰器的使用,Python@函数装饰器以及super()父类继承 ),不过还有一些深入的知识点(带参数的装饰器,保存原始函数的信息,使用装饰函数装饰类)需要我们掌握。 1、带参数装饰器 不要期望装饰器可以即
阅读全文