随笔分类 - python
摘要:from datetime import datetime, timedelta push_time = '2022-03-23T08:40:10.895Z' push_time1 = datetime.strptime(push_time[0:-5], "%Y-%m-%dT%H:%M:%S") +
阅读全文
摘要:参考: https://www.runoob.com/w3cnote/python-func-decorators.html https://www.jb51.net/article/240440.htm 用途:定义一个函数,来修饰之前老的代码,以便在不修改原代码的情况下增加新功能 关键原理:把函数
阅读全文
摘要:压缩/root/mongo文件夹到/tmp目录下,压缩包名字为archive.zip, 在mongo目录下只有一个1.txt文件 import zipfile import os f = zipfile.ZipFile('/tmp/archive.zip','w',zipfile.ZIP_DEFLA
阅读全文
摘要:首先需要安装python3.9,参考:https://www.jb51.net/article/202175.htm sudo apt install -y wget build-essential libreadline-dev libncursesw5-dev libssl-dev libsql
阅读全文
摘要:一. subprocess输出shell命令的值 方法1: #!/usr/bin/python3 # -*- coding: utf-8 -*- import os import subprocess # 与在命令窗口执行显示效果相同,如有彩色输出可保留,但不能返回结果 def run(comman
阅读全文
摘要:方法1: import subprocess x = subprocess.check_output("docker ps | grep wget | awk -F '[ ]+' '{print $NF}' ", shell=True) #data = x.communicate() print(x
阅读全文
摘要:最好不要用 列表 作为参数,否则容易得到非预期的结果,如下代码。 def add(a, b): a += b return a class Company: def __init__(self, name, staffs=[]): self.name = name self.staffs = sta
阅读全文
摘要:参考:https://blog.csdn.net/appleyuchi/article/details/105733270 有时间多看几遍,不难理解 例子1 class Role: def walk(self): print('走') class RunMixin: def run(self): p
阅读全文
摘要:def recursive_test(n): print('数字:',n) if n==0: print('结束') else: recursive_test(n-1) print('number:',n) #看这里 就加了这一句 recursive_test(3) 输出结果为 数字: 3 数字:
阅读全文
摘要:excel.py如下 # encoding:utf-8 from bson.objectid import ObjectId import pymongo import time import xlwt from operator import itemgetter import collectio
阅读全文
摘要:一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__() class People: def __init__(self, name, age): self.name = name self.age = age def __str__(self): return "his na
阅读全文
摘要:局部变量在函数执行完成后就被销毁了。那么如果在line函数中使用了line_conf的变量,当line_conf函数执行完成后,在全局环境中的line函数还能使用line_conf中的变量吗? def line_conf(): b = 15 def line(x): return 2*x + b r
阅读全文
摘要:一. 线程同步之信号量--semaphore 作用:控制进入数量的锁 举个例子: 写文件的时候,一般只用于一个线程写;读文件的时候可以用多个线程读,我们可以用信号量来控制多少个线程读文件 做爬虫的时候,也可以用信号量来控制并发数量,以免访问量过多而被反爬,如下面代码 import threading
阅读全文
摘要:一. GIL 1. 基本概念 GIL:global interpreter lock (cpython下) python中一个线程对应于c语言中的一个线程,GIL使得同一时刻只有一个线程在一个CPU上执行字节码,无法将多个线程映射到多个CPU上执行 2. GIL释放 1)GIL会根据执行的字节码行数
阅读全文
摘要:一. property动态属性 1. 首先来个例子,需求是根据出生年月日,得到某人的年龄 from datetime import date, datetime class User: def __init__(self, name, birthday): self.name = name self
阅读全文
摘要:一. tuple功能 特点:不可变,可迭代,可拆包,但tuple不可变性不是绝对的 其实只要类里包含__iter__或者__getitem__任一个魔法函数都是可迭代的 1. 拆包 1.1 基本用法 name = ("jack", "hong") # 按位置赋值给变量 name1, name2 =
阅读全文
摘要:一. 浅拷贝和深拷贝 浅拷贝:就是创建一个具有相同类型,相同值但不同id的新对象。 浅拷贝产生的新对象中可变对象的值在发生改变时,会对原对象的值也做出改变,因为这些值是同一个引用。 a = [1, 2] b = [3, 4, a] c = b.copy() a[0] = 0 print(b) pri
阅读全文
摘要:1. 鸭子类型 鸭子类型:多个类都有一个相同的方法,我们可以分别实例化一个对象,定义另外一个函数统一调用多个类中的相同方法 class Person: def walk(self): print("i walk use my foot") class Bird: def walk(self): pr
阅读全文
摘要:一. itemgetter的使用方法 itemgetter()返回一个指定列表下标或者字典键的函数,通过这个返回的函数作用到对象上,获得才能取得相应的值 1. 排序字典列表的一个例子 2. itemgetter在一般列表中的用法 3. itemgetter在元组中的用法,其中key为一个函数或者la
阅读全文