python 常用代码块

1.计时

import time
starttime = time.time()
print('计时: ', round(time.time() - starttime, 0), '秒', end="\r\n")


2.读文件

with open('pi_digits.txt') as f: 
    # readline()每一次读取一行数据,并指向该行末尾
    line1 = f.readline() # 读取第一行数据(此时已经指向第一行末尾)
    line2 = f.readline() # 从上一次读取末尾开始读取(第二行)
    print line1.rstrip()
    print line2.rstrip()

 

3.opencv读图片并压缩显示

import cv2
img=cv2.imread('50-50.jpg')
img2=cv2.resize(img,(150,150))
cv2.imshow('img',img2)
cv2.waitKey()

4.多线程,(glob图片遍历,文件是否存在,文件名获取,线程传参)

查看ubuntu cpu核数:cat /proc/cpuinfo |grep "cores"|uniq

import ScalingAttack as sa
from PIL import Image
import glob,os
from multiprocessing  import Pool

        
def process_run(i,im,filename):
    source_image= Image.open(im)
    target_image = Image.open("x.jpg")   
    sa.implement_attack(source_image, target_image,filename)
    print(i,filename)
        
      
if __name__ == '__main__':
    images=glob.glob('images/*.jpg')
    p=Pool(4)
    for i,im in enumerate(images):
        filename=im.split('/')[-1]
        
        if not(os.path.exists("imagenew/"+filename)): 
            p.apply_async(process_run,args=(i,im,filename))
        else:
            print(str(i)+'end')
           
    p.close()
    p.join()

5.opencv 图片镜像和转置

import cv2

img = cv2.imread("50.jpg")
cv2.imshow("yuan", img)
img1 = cv2.flip(img,0)  #镜像
img1 = cv2.flip(img1,-1)  #镜像
#img1 = cv2.flip(img1,-1)
'''
参数2 必选参数。用于指定镜像翻转的类型,其中0表示绕×轴正直翻转,即垂直镜像翻转;1表示绕y轴翻转,即水平镜像翻转;-1表示绕×轴、y轴两个轴翻转,即对角镜像翻转。
参数3 可选参数。用于设置输出数组,即镜像翻转后的图像数据,默认为与输入图像数组大小和类型都相同的数组。
'''
image=cv2.transpose(img)
cv2.imshow('dst',img1)
cv2.imshow('image',image)
cv2.waitKey(0)

6.logger

import os
import logging
import re
from logging.handlers import TimedRotatingFileHandler


def setup_log(log_name):
    # 创建logger对象。传入logger名字
    logger = logging.getLogger(log_name)
    log_path = os.path.join("./log_save",log_name)
    # 设置日志记录等级
    logger.setLevel(logging.INFO)
    # interval 滚动周期,
    # when="MIDNIGHT", interval=1 表示每天0点为更新点,每天生成一个文件
    # backupCount  表示日志保存个数
    file_handler = TimedRotatingFileHandler(
        filename=log_path, when="MIDNIGHT", interval=1, backupCount=7
    )
    # filename="mylog" suffix设置,会生成文件名为mylog.2020-02-25.log
    file_handler.suffix = "%Y-%m-%d.log"
    # extMatch是编译好正则表达式,用于匹配日志文件名后缀
    # 需要注意的是suffix和extMatch一定要匹配的上,如果不匹配,过期日志不会被删除。
    file_handler.extMatch = re.compile(r"^\d{4}-\d{2}-\d{2}.log$")
    # 定义日志输出格式
    file_handler.setFormatter(
        logging.Formatter(
            "[%(asctime)s] [%(process)d] [%(levelname)s] - %(module)s.%(funcName)s (%(filename)s:%(lineno)d) - %(message)s"
        )
    )
    logger.addHandler(file_handler)
    return logger


if __name__ == "__main__":
    logger = setup_log("mylog")
    logger.info("this is info message")
    logger.warning("this is a warning message")
    try:
        int("xjk")
    except ValueError as e:
        logger.error(e)
# 如果其他py文件想使用此配置日志,只需 logging.getLogger(日志的名字)  即可

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值