使用Dockerfile构建flask镜像

之前对dockerfile进行了一些构建参数的学习,今天自己构建了一个常用的flask镜像,我个人认为使用dockerfile构建是为了自定义以及定制化的一些环境需求而使用的,例如自己写的python程序需要预装一些模块,开机启动我写的脚本或者制定位置启动程序等等,然而直接拉取docker仓库的镜像满足不了我的需求,从而需要dockerfile来构建,下面是我构建的flask镜像,很简单,只是简单的初步学习,后面有项目了再分享一些项目上构建的复杂镜像/data/app目录下主要有三个文件Dockerfile,requirements.txt,app.py...

阅读全文

python下pexpect模块使用方法

Expect程序主要用于人机对话的模拟,就是那种系统提问,人来回答yes/no,或者账号登录输入用户名和密码等等的情况。因为这种情况特别多而且繁琐,所以很多语言都有各种自己的实现。最初的第一个Expect是由TCL语言实现的,所以后来的Expect都大致参考了最初的用法和流程,整体来说大致的流程包括:运行程序程序要求人的判断和输入Expect通过关键字匹配根据关键字向程序发送符合的字符串pexpect是Python语言的类Expect实现。从我的角度来看,它在功能上与TCL语言的实现还是有一些差距,比如没有buffer_...

阅读全文

python修改excel的方法

之前有写过python读取excel和写入excel的方法,可以查看我之前的笔记xlwt模块操作excelhttps://sulao.cn/post/607.htmlxlrd模块读取excelhttps://sulao.cn/post/606.html这里再把修改excel的方法再做一遍笔记需要先pip安装xlutils模块pipinstall xlutils然后具体代码是这样的#!/usr/bin/python3#coding:utf-8from xlutils.copy import copy...

阅读全文

python使用pykafka操作kafka

Kafka是一种分布式的、分区的、多副本的基于发布/订阅的消息系统。它是通过zookeeper进行协调,常见可以用于web/nginx日志、访问日志、消息服务等。主要应用场景为:日志收集系统和消息系统。Kafka的主要设计目标如下:1.以时间复杂度为O(1)的方式提供持久化能力,即使对TB级别以上的数据也能保证常数时间的访问性能。2.高吞吐率,即使在十分廉价的机器上也能实现单机支持每秒100K条消息的传输。3.支持KafkaServer(即Kafka集群的服务器)间的消息分区,及分布式消费,同时保证每个parti...

阅读全文

python-daemon实现后台守护进程

我们可以使用很多种方式让python脚本再后台运行,其中最简单的方式是使用linux下的nohup命令1.nohup命令nohup python test.py &这样test.py脚本就脱离了当前终端的控制,我们如果可以使用ps命令查找进程并关闭2.tmux终端tmux是一个提供后台终端窗口的会话服务,我们只需要开启tmux,然后再tmux窗口中运行脚本,然后退出tmux即可3.python-daemon模块这个模块可以使我们的脚本变为后台守护进程,这个模块需要安装pip install pyt...

阅读全文

python3按时间生成日志

之前写过一个“Flask配置logger模块日志生成到日期生成的文件”这个笔记,这里其实和那个差不多,可以看我之前的笔记https://sulao.cn/post/660.html主要还是使用logging模块,主要是一下方法import loggingimport timeimport os#创建loggerlogger = logging.getLogger()#定义日志目录和名字log_dir_name = "logs"log_...

阅读全文

python3获取系统当前进程和进程名的方法

每个程序都是一个进程或者多个进程,除去系统占用资源其他都被这些进程占用,比如我们的web服务,数据库等;很多情况下因为程序自身问题,会导致CPU运行100%,内存耗尽,磁盘写满,最后导致服务崩溃,我们可以通过psutil下面2个方法获取进程相关信息,还是使用之前学习过的psutil模块,之前的笔记可以通过https://sulao.cn/post/4.html查看,下面我们来看今天要学习的主要方法方法说明psutil.pids()获取进程ID(每个进程都有唯一ID)psutil.Process(pid)根据进程ID获取进程Process对象我们直接来看下...

阅读全文

python3工具模块functools的使用方法

functools工具函数在一般业务中用到的不太多,我们日常基本只用到三个函数,其中一个reduce之前有过一个笔记,详情可以查看https://sulao.cn/post/683.html,另外两个函数我们今天来介绍下使用方法我们先来看看functools中有哪些工具函数print(dir(functools))打印结果['RLock', 'WRAPPER_ASSIGNMENTS', 'WRAPPER_UPDATES', '_CacheInfo', ...

阅读全文

python3断言(assert)的简单使用介绍

assert断言语句和if分支有点类似,它用于对一个bool表达式进行断言,如果该bool表达式为True,该程序可以继续向下执行;否则程序会引发AssertionError错误声明布尔值必须为真的判定,布尔值为真,没有输出;如果布尔值为假,则会抛出异常,异常信息可以自己编写。反过来,就可以用来判断布尔值。由于执行速度非常快,可以看做是代码的文档,所以需要使用时,不要犹豫的使用它我们来看一个简单的例子#!/usr/bin/python3#coding:utf-8s_age = input("请...

阅读全文

如何将Python应用迁移到无外网环境

因为客户环境有时候是私有网络,没有外网的环境,所以python无法在线安装包,将所需要包下载到本地进行安装有时还会失败,所以测试用这种方式来做无外网环境的迁移,主要是以下操作将虚拟环境中安装的Python依赖包记录到文件requirements.txt中pip freeze >requirements.txt将安装的Python依赖包保存到(项目目录)\packages目录下pip download  -r requirements.txt  -d  ...

阅读全文