Python内置方法与语法
小宇不内向
广东OPPO移动通信有限公司
展开
-
Python 解决CMD命令行终端无法import自定义依赖包问题
import sysimport os# 获取 路径file_path = os.path.dirname(os.path.abspath(__file__))# 修改运行路径sys.path.append(file_path)# 0 表示优先级,数字越大级别越低,修改模块的导入sys.path.insert(0, os.path.dirname(file_path))...原创 2021-11-08 12:04:30 · 1017 阅读 · 0 评论 -
Python 使用 schedule 实现定义调度
1. 导入 schedule 模块import schedule2. 示例代码def job_test(): print(datetime.datetime.now())def job_test_2(name): print(datetime.datetime.now()) print(name)# 每隔 10 分钟执行一次 job_test()schedule.every(10).minutes.do(job_test)# 每隔 1 小时执行一次 jo原创 2021-11-03 17:18:53 · 258 阅读 · 0 评论 -
Python 删除某个目录和目录下的文件
可以用 os.walk() 来递归删除某个目录及其目录下的文件,如下示例代码:import os def removedir(rootdir): for root, dirs, files in os.walk(rootdir, topdown=False): for name in files: os.remove(os.path.join(rootdir, name)) for name in dirs:原创 2021-11-03 09:28:14 · 666 阅读 · 0 评论 -
Python 解压 zip 文件
1. 导入 zip 库import zipfile2. 解压 zip 文件:将 zip 文件解压到 output 目录下def tarfile(self, filepath, output): if not os.path.exists(output): os.mkdir(output) if os.path.isfile(filepath): r = zipfile.is_zipfile(filepath) if r:原创 2021-11-03 09:26:29 · 572 阅读 · 0 评论 -
Python 操作 sqlite 数据库笔记
1. 导入 sqlite库import sqlite32. 查询数据库def sqlExecte(cls, eventid, date_min, date_max): # 一条 sql 查询语句 sql = """select * from (select dayno, total, row_number() over(order by total desc) rank from .原创 2021-11-03 09:24:10 · 166 阅读 · 0 评论 -
Python 计算某个日期减10天的操作
def dateMinus10Day(cls, dayno_str): daysofmonth = { # 每个月的天数字典 1: 31, 2: 28, 3: 31, 4: 30, 5: 31, 6: 30, 7: 31, 8: 31, 9: 30, 10: 31, 11: 30, 12: 31 }.原创 2021-11-03 09:15:46 · 644 阅读 · 0 评论 -
Python 操作 mysql 数据库笔记
import mysql.connector2. 创建 mysql 链接,如下函数,作为一个类的初始化函数,实例化对象时,传进一个数据库名作为参数。def __init__(self, db_name): """连接数据库""" self.mOperator = mysql.connector.connect( host='localhost', user='root', passwd='xxx990.原创 2021-11-03 09:05:47 · 178 阅读 · 0 评论 -
Python 操作 csv文件笔记
1. 导入 csv 库import csv2. 读 csv 文件内容if os.path.isfile(csvpath): #判断文件是否存在 with open(csvpath) as fd: #打开文件 for line in csv.reader(fd): #读取文件内容 print(line) #按行打印3. 初始化一个 csv 表头可以这样写def init_cs原创 2021-11-03 08:43:15 · 287 阅读 · 0 评论 -
python服务端口被占用时如何解决
1. 查出哪个进程占用端口netstat -ano|findstr :80832. 从截图可以看到,PID 13756 占用了8083端口,kill 掉13756进程即可。使用 taskkill 指令taskkill /? 可查看 taskkill 指令参数指令taskkill /F /PID13756 杀掉 PID 为13756 的进程...原创 2021-10-28 12:04:08 · 1458 阅读 · 0 评论 -
python编译的单例模式方法
单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。下面提供这段代码,说明一下python通过装饰器来实例单例模式。def singleton(cls): _instance = {} def inner():原创 2021-10-13 21:04:49 · 131 阅读 · 0 评论 -
如何使和pipenv创建虚拟python环境
1.windows用pip安装pip install pipenv2.快速创建并进入虚拟环境# 创建python3环境pipenv --three# 创建python2环境pipenv --two如下截图,创建虚拟环境成功并在 D:\Users\xxx\.virtualenvs\NVBackupTools-iQ85xRYa\ 下生成一虚拟环境。以前我们需要将虚拟环境依赖包的导出为requirements.txt,一旦依赖包变动,就要重新导出,而pipenv会自动帮我们...原创 2021-10-12 08:38:39 · 297 阅读 · 0 评论 -
Linux下使用命令行调试Python程序
官方参考网站:Python2: https://docs.python.org/2/library/pdb.htmlPython3: https://docs.python.org/3/library/pdb.html一般地,我们可以使用如下的方式进入调试(比如我们要调试的源文件为hello.py):1. 在命令行启动目标程序,加上-m参数。python -m pdb hello.py 2. 在Python交互环境中启用调试我们可以在源文件要进入调试的的地方,加入如下代码:im转载 2021-09-08 15:02:46 · 726 阅读 · 0 评论 -
python os模块
os.path.sep:路径分隔符 linux下就用这个了’/’os.path.altsep: 根目录os.path.curdir:当前目录os.path.pardir:父目录os.path.abspath(path):绝对路径os.path.join(): 常用来链接路径os.path.split(path): 把path分为目录和文件两个部分,以列表返回...原创 2021-06-09 11:02:30 · 143 阅读 · 2 评论 -
Python使用struct将基本数据类型转化为字节流
C语言的struct结构体里面包含不同类型的数据(int,char,bool等等),而在网络通信当中,大多传递的数据是以二进制流(binary data)存在的。当传递不同数据类型时,诸如int、char之类的基本数据的时候,就需要有一种机制将某些特定的结构体类型打包成二进制流的字符串然后再网络传输,而接收端也应该可以通过某种机制进行解包还原出原始的结构体数据。python中的struct模块就提供了这样的机制,该模块的主要作用就是对python基本类型值用python字符串格式表示的C stru.原创 2020-06-14 16:21:05 · 1410 阅读 · 0 评论 -
Python 函数的可变参数和解包参数(*, **)
Python中,在形参前面加上"*"与"**",旨在让函数支持接受任意多的参数,它们可以出现在函数定义或是函数调用中。1.函数定义中:收集参数在函数定义中把不能匹配的基于位置的参数收集到一个元组中,当这个函数被调用时,Python将所有基于位置的参数收集到一个新的元组中,并将这个元组赋值给变量args。def f(*args): print(args)f() #...原创 2019-10-29 17:01:27 · 772 阅读 · 0 评论 -
Python 的装饰器 decorator 详解
什么是高阶函数:一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归),满足其一则为高阶函数。 Python 的decorator本质上就是一个高阶函数,它接收一个函数作为参数,然后,返回一个新函数。使用 decorator 用Python提供的@语法,这样可以避免手动编写 f = decorate(f)...原创 2019-10-24 11:29:11 · 239 阅读 · 0 评论 -
Python 装饰器常见方法 functools.wraps 详解
我们知道函数被装饰器,装饰后,所有的属性,以及内置函数就失效了,原因是函数类型变成了装饰器返回的函数的类型。def warfunc(func): def xy_ret(*args,**kwargs): print('warpper demo') ret = func(*args,**kwargs) return ret retu...原创 2019-10-24 10:53:59 · 1047 阅读 · 0 评论 -
Python 生成器与生成器的应用
1.生成器:(1)在 Python中,一边循环一边计算的机制,称为生成器(Generator);(2)生成器是Python中的一个对象,对这个对象进行操作,可以依次生产出按生成器内部运算产生的数据;(3)生成器可以通过生成器表达式和生成器函数获取到;2.什么是生成器函数: 生成器函数指的是函数体中包含yield关键字的函数(yield就是专门给生成器用的r...原创 2019-10-21 17:10:47 · 308 阅读 · 0 评论 -
Python 对象的垃圾回收详解
Python垃圾回收器官方文档:https://docs.python.org/zh-cn/3.8/library/gc.html?highlight=gc#module-gc在 Python中,每当一个变量名被赋一个新的对象,如果原来的对象没有被其他的变量名或对象所引用的话,那么之前的那个对象占用的空间就会被回收。这种自动回收对象空间的技术叫作垃圾回收。a = 3a = 'sp...原创 2019-10-18 11:12:19 · 1455 阅读 · 0 评论 -
Python 变量,对象和引用
Python中,当输入a = 3时,Python怎么知道那代表一个整数呢?在这种情况下,Python怎么知道 a是什么?变量创建:一个变量(也就是变量名),就像a,当代码第一次给它赋值时就创建了它。从技术上讲,Python在代码运行之前先检测变量名,但你可以理解为最初的赋值操作在创建变量。变量类型:变量永远不会拥有任何和它关联的类型信息或约束。类型的概念存在于对象而不是...原创 2019-10-18 10:54:12 · 616 阅读 · 0 评论 -
Python 如何运行程序
1. Python解释器解释器是一种让其他程序运行起来的程序。当你写一段 Python程序,Python解释器将读取程序,并按照其中的命令执行,得出结果。实际上,解释器是代码与机器的计算机硬件这间的软件逻辑层。2. Python字节码Python内部(对大多数用户是完全隐藏的)会先将源代码编译成字节码的形式。这些字节码可以提高运行速度,比起文本中的原始源代码语句,字节码的运行速...原创 2019-10-16 21:37:45 · 446 阅读 · 0 评论 -
Python 迭代器和迭代协议
1.什么是迭代工具:能够从左到右扫描对象的方法,比如:for循环,列表推导,in成员关系测试,以及内置函数map等。2.可迭代对象与迭代器对象:(1)可迭代对象:迭代的被调用对象,其__iter__方法被iter函数所调用,简单来说,有__iter__方法的对象,就是可迭代对象。(2)迭代器对象:可迭代对象的返回结果,在迭代过程中实际提供值的对象。它的__next__方法被n...原创 2019-10-15 17:20:47 · 186 阅读 · 0 评论 -
Python 的 iter()函数
iter()函数用来生成迭代器。iter(object[, sentinel])iter创建一个迭代器对象,每次调用这个迭代器对象的__next__()方法时,都会调用object对象。如果__next__的返回值等于sentinel,则抛出StopIteration异常,否则返回下一个值。lst = [1, 2, 3]for i in iter(lst): pr...原创 2019-10-14 14:03:46 · 231 阅读 · 0 评论 -
Python 的字符串替换 %(占位符) {} 和 format
1. 用 .replace()srcPage = "https://list.jd.com/list.html?cat=9987,653,655&ev=exbrand_8557&page={}"nextPage = srcPage.replace("{}", {1}) # 不会影响 srcPageprint(nextPage)# https://list.jd.c...原创 2019-10-13 14:04:16 · 2962 阅读 · 0 评论 -
Python 的Json库用法详解
1.dumps() 方法:将 Python 对象编码成 JSON 字符串。json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=Fals...原创 2019-10-09 10:57:21 · 2321 阅读 · 0 评论 -
Python 格式化输出
1.各个格式符号及其表示类型:格式符号 表示类型 %s 字符串 %d/%i 十进制整数 %u 十进制整数 %o 八进制整数 %x/%X 十六进制整数 %e/%E 科学计数 %f/%F 浮点数 %% 输出% 2. 浮点数保留2位小数点的作法:(1) round方法round(x, [, n...原创 2019-10-09 10:19:16 · 98 阅读 · 0 评论 -
Python set()集合方法详解
set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。#addmyset.add("xiaoyu")myset.add(1)myset.add("test")print(myset)# remove, discardmyset.remove("xiaoyu")print(myset)myset.discard(1)print...原创 2019-10-08 17:08:41 · 995 阅读 · 0 评论 -
Python 文件编码的检测
本文参考于:https://www.cnblogs.com/schut/p/10579955.html 文件打开的原则是 “以什么编码格式保存的,就以什么格式打开”,我们常见的文件一般是以“ utf-8 ”或“ GBK ”编码进行保存的,由于编辑器一般设置了默认的保存和打开方式,所以我们在记事本或常见文档编辑器如 Word 中不容易看到乱码的情况发生,但是,当我们要在内存里读取打开一...转载 2019-10-08 11:00:49 · 907 阅读 · 0 评论 -
Python 常见字符编码间的转换 encode() 和 decode() 方法
本文转载于:https://www.cnblogs.com/schut/p/8407258.html阅读本文前,可以先阅读前一篇文章《Python常见字符编码介绍》。编码的转换 虽然有了unicode和utf-8,但由于历史问题,各个国家依然在大量使用自己的编码,比如中国的 windows ,默认编码依然是gbk ,而不是utf-8 。基于此,如果中国的软件出...转载 2019-10-07 17:07:40 · 1440 阅读 · 1 评论 -
Python repr() 函数和 str() 函数
Python可以将任意对象转化为字符串:repr()和 str().函数str()将对象转化为适于人类阅读的形式,而repr()转化为供解释器读取的形式。repr()语法# repr(object)s = 'RUNOOB'repr(s) # "'RUNOOB'"dict = {'runoob': 'runoob.com', 'google': 'googl...原创 2019-10-07 14:24:07 · 411 阅读 · 0 评论 -
Python 的 logging 模块(一)日志的几种级别与loggging模块中的格式字符串说明
1.logging模块的日志级别日志等级(level) 描述 DEBUG 最详细的日志信息,典型应用场景是问题诊断 INFO 信息详细程度仅次于 DEBUG ,通常只记录关键节点信息,用于确认一切都是按照我们预期的那样进行工作 WARRING 当某些不期望的事情发生时记录的信息(如,磁盘可用空间较低),但此时应用程序还是正常运行的 ERROR ...原创 2019-10-09 13:54:46 · 814 阅读 · 0 评论 -
Python 的 logging 模块(二)使用 logging.basiCongif() 简单配置
默认情况下 Python 的 logging 模块将日志打印到了标准输出中,且只显示了大于等于 WARNING 级别的日志,这说明默认的日志级别设置为 WARNING 。默认输出格式为:默认的日志格式为日志级别:Logger名称:用户输出消息这里可以使用 logging.basicConfig()函数调整日志级别、输出格式等。import loggingl...原创 2019-10-09 14:22:17 · 197 阅读 · 0 评论 -
Python 的 logging 模块(三)使用日志处理流程配置
一、介绍四大组件 日志处理流程中,包含了logging模块的四大组件,分别是:组件名称 对应类名 功能描述 日志器 Logger 提供了应用程序可一直使用的接口 处理器 Handler 将logger创建的日志记录发送到合适的目的输出 过滤器 Filter 提供了更细粒度的控制工具来决定输出哪条日志记录,丢弃哪条日志记录...原创 2019-10-09 15:43:58 · 213 阅读 · 0 评论 -
Python 的 logging模块(四)日志流处理流程图文解说
下图描述了日志流的处理流程:日志处理流程:1.(在用户代码中进行)日志记录函数调用,如:logger.info(...),logger.debug(...)等;2.判断要记录的日志级别是否满足日志器设置的级别要求,如果不满足则该日志记录会被丢弃并终止后续的操作,如果满足则继续下一步操作;3.根据日志记录函数调用时掺入的参数,创建一个日志记录(LogRecord类)对象;...原创 2019-10-09 17:08:30 · 436 阅读 · 0 评论 -
Python 的 logging 模块(五)重复写日志问题
用 Python 的 logging 模块记录日志时,可能会遇到重复记录日志的问题,第一条记录写一次,第二条记录写两次,第三条记录写三次。原因:没有移除 Handler解决:在日志记录完之后 removeHandler例子1:def log(msg): #创建logger,如果参数为空则返回root logger logger = logging.getLogg...原创 2019-10-09 17:23:11 · 1219 阅读 · 0 评论 -
pickle库——存储Python原生对象
1.前言 eval()方法:parts = ['[1, 2, 3]', "{'a':1, 'b':2}\n"]eval(parts[0]) # [1, 2, 3]objs = [eval(p) for P in parts]print(objs) # [[1, 2, 3], {'a':1, 'b':2}]使用eval可以把字符串转换成对象,因此它是一个功能强大的...原创 2019-10-10 17:09:51 · 219 阅读 · 0 评论 -
Python 的鸭子类型
当你看到一只鸟走起来像鸭子,游泳起来像鸭子,叫起来像鸭子,那么这只鸟就可以被称为鸭子。 所有的类都实现了一个共同的方法,这些类可以归为一种类型, 同理,如果多个类都实现了一个魔法函数,则都可以归为一种类型, 所以,在很多 python 内置的类中,都会有很多共同的特性。例如:class Cat(object): def say(self): ...原创 2019-10-10 17:24:35 · 233 阅读 · 0 评论 -
Python 的异常和异常处理笔记
1. 异常的概念 异常是错误发生的信号,一旦程序出错,并且程序没有处理这个错误,那个就会抛出异常,并且程序的运行随即终止。2. 常见语法错误异常:异常 注解 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常;基本上是无法打开文件 ImportError 无法引入模块或包;...原创 2019-10-11 14:14:45 · 145 阅读 · 0 评论 -
Python dict 与 defaultdict 详细介绍
1. dict 的方法:(1) 增加的方法:dict 有两种增加的方法: a. 第一种:如果没有的键值对,则进行添加,如果有,则将值进行覆盖。dict1={'name':'jinxin','age':18,'male':'男'}dict1['high']=185 # 增加 'high':185 键值对print(dict1) # {'name': 'jinxin',...原创 2019-10-06 21:32:31 · 1071 阅读 · 0 评论