首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Python小脚本】基于装饰器的方法日志脚本

博文内容包括两部分: Python闭包&装饰器,装饰器设计模式简述 基于Python装饰器的函数日志模块实现: 日志提供函数执行时间,入参,函数业务信息的采集 日志位置支持函数前,函数最终,函数异常时,...我们只能通过返回值的方式来处理 在一些解释型的语言中,比如JS,Python等,我们可以通过函数嵌套的方式,可以获取函数内部的一些变量信息。...,当然python也可以实现基于类的装饰器 装饰器的功能特点: 不修改已有函数的源代码 不修改已有函数的调用方式 给已有函数增加额外的功能 闭包函数有且只有一个参数,必须是函数类型,这样定义的函数才是装饰器...装饰器 Python装饰器的语法糖 Python给提供了一个装饰函数更加简单的写法,语法糖的书写格式是: @装饰器名字,通过语法糖的方式也可以完成对已有函数的装饰. def check(fn):...具体的脚本 基于装饰器函数日志脚本 讲了这么多,我们来看看,如何在用装饰器实现函数的日志 这里需要注意一下@functools.wraps(func)这个装饰器,一般函数被装饰器装饰完之后,被装饰的函数的名字会变成装饰器函数

33520
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Python】基于某些列删除数据框中的重复值

    Python按照某些列去重,可用drop_duplicates函数轻松处理。本文致力用简洁的语言介绍该函数。...导入数据处理的库 os.chdir('F:/微信公众号/Python/26.基于多列组合删除数据框中的重复值') #把路径改为数据存放的路径 name = pd.read_csv('name.csv...从结果知,参数为默认值时,是在原数据的copy上删除数据,保留重复数据第一条并返回新数据框。 感兴趣的可以打印name数据框,删重操作不影响name的值。...原始数据中只有第二行和最后一行存在重复,默认保留第一条,故删除最后一条得到新数据框。 想要根据更多列数去重,可以在subset中添加列。...如需处理这种类型的数据去重问题,参见本公众号中的文章【Python】基于多列组合删除数据框中的重复值。 -end-

    20.5K31

    Python 标准类库-并发执行之multiprocessing-基于进程的并行

    实践环境 Python3.6 介绍 multiprocessing是一个支持使用类似于线程模块的API派生进程的包。该包同时提供本地和远程并发,通过使用子进程而不是线程,有效地避开了全局解释器锁。...这方面的一个主要例子是Pool对象,它提供了一种方便的方法,可以在多个输入值的情况下,为进程之间分配输入数据(数据并行),实现并行执行函数。...当进程第一次将项目放入队列时,会启动一个feeder线程,该线程将对象从缓冲区传输到管道中。来自标准库的queue模块的常见queue.Empty和queue.Full异常被引发以发出超时信号。...类似threading.current_thread() multiprocessing.get_all_start_methods() 返回支持的启动方法的列表,其中第一个是默认方法。...考虑到阻塞问题,apply_async()更适合并行执行工作。此外,func只在池的一个工作进程中执行。

    78820

    人生苦短:运行你的第一个 Python 脚本

    我会假设你已经安装了一个有效的Python解释器,已经准备运行你的第一个Python脚本。 我们可以在解释器中实现如下操作: 1 读取命令。 2 评估并执行命令。 3 打印输出。...Python脚本是一组可重用的代码,它本质上是一个Python程序 - 一系列Python指令 - 包含在一个文件中。 你可以通过为解释器指定脚本文件的名称来运行该程序。...下面是时候创建我们的第一个脚本文件了。 在系统上,打开你喜欢的文本编辑器,创建一个名为hello.py的新文件,并添加以下代码: print("Hello, World!")...启动终端并到保存脚本文件的所目录,现在就可以将文件名告诉Python解释器的命令行参数来执行该脚本: python hello.py ?...运行Python脚本 经过我们测试,还有一个有趣的事儿是Python脚本文件可以不需要扩展名,Python解释器都能把脚本运行起来。

    1.7K30

    【Python】基于多列组合删除数据框中的重复值

    本文介绍一句语句解决多列组合删除数据框中重复值的问题。 一、举一个小例子 在Python中有一个包含3列的数据框,希望根据列name1和name2组合(在两行中顺序不一样)消除重复项。...import numpy as np #导入数据处理的库 os.chdir('F:/微信公众号/Python/26.基于多列组合删除数据框中的重复值') #把路径改为数据存放的路径 df =...如需数据实现本文代码,请到公众号中回复:“基于多列删重”,可免费获取。 得到结果: ?...相当于保留第一行,把其余重复行删除。...numpy as np #导入数据处理的库 os.chdir('F:/微信公众号/Python/26.基于多列组合删除数据框中的重复值') #把路径改为数据存放的路径 name = pd.read_csv

    14.7K30

    Python基于Excel多列数据绘制动态长度的折线图

    本文介绍基于Python语言,读取Excel表格数据,并基于给定的行数范围内的指定列数据,绘制多条曲线图,并动态调整图片长度的方法。   首先,我们来明确一下本文的需求。...现有一个.csv格式的Excel表格文件,其第一列为表示时间的数据,而靠后的几列,也就是下图中紫色区域内的列,则是表示对应日期的属性的数据;如下图所示。   ...其中,第一列是一个表示时间、循环增长的列,其数值从2023001开始,到2023365结束,然后会继续再从2023001开始,以此类推;并且每一个循环中,有些日期可能会缺失,即并不是每天都有数据的。   ...我们现在希望,对于给定的行数起始值与结束值(已知这个起始值与结束值对应的第一列数据,肯定是一个完整的时间循环),基于表格中后面带有数据的几列(也就是上图中紫色区域内的数据),绘制曲线图;并且由于这几列数据所表示的含义不同...,也就是处于指定行数内的数据;time就是第一列数据,也就是一个循环内的时间序列,time_x则用于显示图片的x轴刻度——之所以需要这个,是因为我这里希望用字符的形式来表示图片中x轴的刻度(如果用数字的话

    18610

    Python基于Excel多列长度不定的数据怎么绘制折线图?

    本文介绍基于Python语言,读取Excel表格数据,并基于给定的行数范围内的指定列数据,绘制多条曲线图,并动态调整图片长度的方法。  首先,我们来明确一下本文的需求。...现有一个.csv格式的Excel表格文件,其第一列为表示时间的数据,而靠后的几列,也就是下图中紫色区域内的列,则是表示对应日期的属性的数据;如下图所示。  ...其中,第一列是一个表示时间、循环增长的列,其数值从2023001开始,到2023365结束,然后会继续再从2023001开始,以此类推;并且每一个循环中,有些日期可能会缺失,即并不是每天都有数据的。  ...我们现在希望,对于给定的行数起始值与结束值(已知这个起始值与结束值对应的第一列数据,肯定是一个完整的时间循环),基于表格中后面带有数据的几列(也就是上图中紫色区域内的数据),绘制曲线图;并且由于这几列数据所表示的含义不同...,也就是处于指定行数内的数据;time就是第一列数据,也就是一个循环内的时间序列,time_x则用于显示图片的x轴刻度——之所以需要这个,是因为我这里希望用字符的形式来表示图片中x轴的刻度(如果用数字的话

    9810

    如何基于Python实现MySQL查询的API设计,附上完整脚本

    我们在平时的工作中不可避免会有连接到数据库的操作,通常来说我们会使用基于Shell的方式,或者基于数据库驱动的连接方式,比如JDBC,ODBC,PyMySQL,MySQLdb等。...如果使用数据库启动,基于Python的模式就是一种很不错的选择,我们可以开发一个Python脚本,然后把这个Python脚本使用RESTful API的模式包装起来,这样对外的服务就是API而不是单一的脚本...大概的设计方式如下: ? 我们因为版本的选型在这里使用的是基于MySQLdb的实现方式,我们来逐个分析一下。..., 2)基于Python驱动的输出时间类型是映射datetime,对于前端处理来说也不够友好,所以我们要一并处理。...:sql_text=sys.argv[3]db_port=sys.argv[1]db_name=sys.argv[2] 为了封装为一个API,逻辑的部分实现有以下几个要点: 1)调用Python脚本,

    1.4K30

    Python用selenium实现模拟登录,各种抢票脚本的第一步

    Cookie实现免登陆 time 做延时操作 os 创建文件,判断文件是否存在 第三方库 selenium >>> pip install selenium==3.4.1 开发环境 版 本:anaconda(python3.8.8...) 编辑器:pycharm 先导入所需模块 from selenium import webdriver # 操作谷歌浏览器 需要额外安装的 并且现在安装这个模块得指定版本 3.4 from time...import sleep import pickle # 保存和读取cookie实现免登录的工具 import os # 操作文件的模块 定义变量 # 大麦网主页 damai_url = 'https...# {0: 模拟登陆, 1: 免登录} self.driver = webdriver.Chrome(executable_path='chromedriver.exe') 登陆网站的时候要用的方法...没有登陆的情况下 第一次登陆的时候,会帮助我记录我们的登陆信息 登陆成功之后 cookie会发生变化 def set_cookies(self): self.driver.get(damai_url

    1.5K30

    基于文心大模型套件ERNIEKit实现文本匹配算法,模块化方便应用落地

    /applications/tasks/text_matching/data/dict/vocab.txt :词表分为两列,第一列为词,第二列为id(从0开始),列与列之间用**\t进行分隔。...[UNK] 15661.1.2 ERNIE模型数训练集Pairwise训练集:数据分为三列,列与列之间用\t分割,以query和文章标题匹配任务为例,第一列为query,第二列为正例标题pos_titile...给姓全的男生起外号测试集/验证集Pairwise训练集:数据分为三列,列与列之间用\t分割,以query和文章标题匹配任务为例,第一列为query,第二列为正例标题pos_titile,第三列为负例标题...下面的第一行输出的是”64bit”,第二行输出的是”x86_64”、”x64”或”AMD64”即可:CPU机器的安装请参考1,完成Paddle和Python3的安装即可GPU机器的安装使用GPU机器时,...=1#设置python#alias python= your python path#alias pip= your pip path注意:如果需要多卡并行训练,需要先下载NCCL,下载地址:http:

    1.4K30

    如何把一个python列表(有很多个元素)变成一个excel表格的第一列?

    大家好,我是Python进阶者。...一、前言 前几天在Python最强王者群有个叫【麦当】的粉丝问了一个关于Python如何把一个python列表(有很多个元素)变成一个excel表格的第一列的问题,这里拿出来给大家分享下,一起学习。...new2=[1,1,1,1,1,2,2,2,2,2] new3=[3,3,3,3,3,4,4,4,4,4] # 下面这行会直接把第一列数据替换 df[0]=new1 # 在最后面添加一列 df["新...=col_names,fill_value=0) print(df3) # 在最前面插入一列,方法二 df3.insert(0,'新列2',new3) print(df3) 【瑜亮】老师在手机上编程的...这篇文章基于粉丝提问,针对如何把一个python列表(有很多个元素)变成一个excel表格的第一列的问题,给出了具体说明和演示,文中给了两个方法,顺利地帮助粉丝解决了问题。

    2.5K10

    Python+Selenium基础篇之5-第一个完整的自动化测试脚本

    分类专栏: Python+Selenium自动化测试从零到框架设计系列 作者 | Anthony_tester,300w+访问量博主,Oracle测试开发工程师。...表达式后,我们可以开始写自己的第一个真正意义上的webui 自动化测试脚本,就相当于,你在学习Python,如何在控制台打印Hello,Python!...在写自动化脚本之前,需要明确手动脚本的步骤,然后去拆分到具体没一个步骤做什么,考虑好了之后,才开始动手去写脚本。...总结:自动化测试最难的在于如何去写断言,如何判断测试结果是否通过。 建议:以上代码包括以后文章中脚本举例,你还是最好去一行一行抄写,不要直接复制、黏贴到你记事本中。...因为,你在书写脚本过程,肯定会犯一些语法和输入错误,在调试脚本过程,通过观察报错信息,直到你解决问题,可以顺利执行脚本,你会得到和收获很多。

    1.7K20

    怎么使用python写一个最简单的扫描器(脱离脚本小子第一步)

    我们都知道,做网络安全,python是我们写工具最常用,也是最好用的一个工具。...我们平时经常使用一些脚本去进行扫描,其实有的时候根据自己的需求去写一个工具才是效率最高的,今天我就带大家详细解剖一下基础扫描代码这一块,仔细学习的你一定有所收获。...tcp全开放端口扫描和半开放扫描 tcp扫描我们最常用在什么呢,那就是对于目标端口的扫描,也是最重要的一个目标信息搜集,在python中实现这一点,我们只需要不到二十行代码。...== '__main__': main() 代码并不多,去掉选择库和一些固定格式,也就是十二三行 区别就是判断完之后我们不发一个ack过去了,flags改为R发送过去就好了 总结来说步骤如下 1、第一步我们需要发送一个...syn的请求包 2、第二步我们需要判断返回的数据包是否是空信息,是则判断关闭,不是则继续下一步 3、第三步判断我们收到的flags信息头是不是0x12,是的话我们就返回一个ack包,不是的话判断关闭,半开放扫描就不返回一个

    40150

    向量化操作简介和Pandas、Numpy示例

    Pandas是一种流行的用于数据操作的Python库,它提供了一种称为“向量化”的强大技术可以有效地将操作应用于整个列或数据系列,从而消除了显式循环的需要。...3、条件操作 也将矢量化用于条件操作,比如基于列a中的条件创建一个新的列D: import pandas as pd data = {'A': [1, 2, 3]} df = pd.DataFrame...清晰度:与显式循环的代码相比,代码通常更简洁,更容易阅读。 易用性:您可以使用一行代码将操作应用于整个行或列,降低了脚本的复杂性。...效率比较 比较一下使用NumPy和Python中传统的基于循环的方法执行元素加法所花费的时间。我们将使用timeit模块来度量这两个方法的执行时间。...并行性:一些向量化操作可以并行化,这意味着现代处理器可以同时执行多个操作。这种并行性进一步加快了计算速度。

    87020

    python 多线程那些事

    好消息是,通过引入并发或并行性,我们可以大大加快此过程。 所有后续代码示例将仅显示新的且特定于那些示例的import语句。为了方便起见,所有这些Python脚本都可以在GitHub存储库中找到。...例如,IronPython(使用.NET框架的Python实现)没有GIL,而基于Java的Jython也没有。您可以在此处找到可用的Python实现列表。...使用它提供的map方法,我们会将URL列表传递给池,池将依次产生八个新进程,并使用每个进程并行下载图像。这是真正的并行性,但要付出代价。脚本的整个内存将复制到产生的每个子进程中。...RQ易于使用,并且很好地涵盖了简单的用例,但是如果需要更多高级选项,则可以使用其他Python 3队列解决方案(例如Celery)。...我们可以在单线程,单进程脚本中创建所有图像的缩略图版本,然后测试基于多处理的解决方案。 我们将使用Pillow库处理图像的大小调整。 这是我们的初始脚本。

    78120

    玩转Pandas,让数据处理更easy系列6

    DataFrame是一个二维的结合数组和字典的结构,因此对行、列而言,通过标签这个字典的key,获取对应的行、列,而不同于Python, Numpy中只能通过位置找到对应行、列,因此Pandas是更强大的具备可插可删可按照键索引的工具库...,在数据集上实现分-应用-合的操作,达到整合和改变数据形状的目的。...03 Groupby:分-治-合 group by具体来说就是分为3步骤,分-治-合,具体来说: 分:基于一定标准,splitting数据成为不同组 治:将函数功能应用在每个独立的组上 合:收集结果到一个数据结构上...合地话就是映射为具体的某个数据结构。...如果我们想看下每组的第一行,可以调用 first(),可以看到是每个分组的第一个,last()显示每组的最后一个: agroup.first() ?

    2.7K20
    领券