Python作为一门脚本语言,经常作为脚本接受命令行传入参数,Python接受命令行参数大概有三种方式。因为在日常工作场景会经常使用到,这里对这几种方式进行总结。命令行参数模块这里命令行参数模块平时工作中用到最多就是这三种模块:sys.argv,argparse,click。sys.argv和argparse都是内置模块,click则是第三方模块。sys.argv模块(内置模块)先看一个简单的示例:#!/usr/bin/pythonimportsysdefhello(name,age,sex,*args):...
继续阅读 >
分类:Python
2020
12-16
12-16
python 基于Apscheduler实现定时任务
导语在工作场景遇到了这么一个场景,就是需要定期去执行一个缓存接口,用于同步设备配置。首先想到的就是Linux上的crontab,可以定期,或者间隔一段时间去执行任务。但是如果你想要把这个定时任务作为一个模块集成到Python项目中,或者想持久化任务,显然crontab不太适用。Python的APScheduler模块能够很好的解决此类问题,所以专门写这篇文章,从简单入门开始记录关于APScheduler最基础的使用场景,以及解决持久化任务的问题,最...
继续阅读 >
2020
12-16
12-16
next在python中返回迭代器的实例方法
在python中有不少对于集合迭代的方法,我们把程序运行后的再一次循环叫做迭代,每一次都循环都可以看做是一次迭代。那么在迭代结束后,我们需要使用next函数来返回迭代器中。接下来我们就next的用法、参数、返回值、在python中返回迭代器的实例给大家进行展示。1.next()用法next(iterator[,default])2.参数说明iterable--可迭代对象default--可选,用于设置在没有下一个元素时返回该默认值,如果不设置,又没有下一个元素则会...
继续阅读 >
2020
12-16
12-16
python中slice参数过长的处理方法及实例
很多小伙伴对于slice参数的概念理解停留在概念上,切片的参数有三个,分别是step、start、stop。因为参数的值也是多变的,所以我们需要对它们进行下一步的处理。在之前的slice讲解中我们提到列表数据过长的问题,其中在参数中也有这样的问题存在。下面我们就step、start、stop三个参数的分别处理展开讲解,帮大家深入了解slice中的参数问题。1.step的处理if(r->step==Py_None){/*step默认是1,这不难理解*/...
继续阅读 >
如题,在控制台运行pythonmanage.pystartappsales建立一个应用报错异常1.应用名不能包含下划线等字符所以app-demo不能作为应用名被定义2.manage.py报错这时我们要打开manage.py文件修改前:ifname=="main":os.environ.setdefault("DJANGO_SETTINGS_MODULE","djangodeom.setting")fromdjango.core.managementimportexecute_from_command_lineexecute_from_command_line(sys.argv)修改后:把os里面的setting去掉,django...
继续阅读 >
2020
12-16
12-16
详解python中的异常捕获
异常异常是程序发生错误的信号,程序一旦出错就会抛出异常,程序的运行随之终止。#异常处理的三个特征-异常的追踪信息-异常的类型-异常的内容捕获异常的目的:为了增强程序的健壮性,即便程序运行过程中出错,也不要终止程序,而是捕获异常并处理,将出错信息记录到日志内。#语法上错误SyntaxError-处理方式1:必须在程序运行前就改正#逻辑上的错误-错误发生的条件是可以预知的-->if判断-错误发生的条件是无法预知的--...
继续阅读 >
2020
12-16
12-16
python 6种方法实现单例模式
单例模式是一个软件的设计模式,为了保证一个类,无论调用多少次产生的实例对象,都是指向同一个内存地址,仅仅只有一个实例(只有一个对象)。实现单例模式的手段有很多种,但总的原则是保证一个类只要实例化一个对象,下一次再实例的时候就直接返回这个对象,不再做实例化的操作。所以这里面的关键一点就是,如何判断这个类是否实例化过一个对象。这里介绍两类方式:一类是通过模块导入的方式;一类是通过魔法方法判断的方式...
继续阅读 >
2020
12-15
12-15
python中reload重载实例用法
当我们想对python中原有的模块进行覆盖,又不希望退出当前的程序,就需要用到重载的概念。这样既能使模块得到更新,又不影响解释器的使用。在导入的模块上,也是对之前原有模块的一次覆盖,包括最初导入时所加载的各种过程。下面我们学习reload的一些基础内容,在实例中体会加载功能。1.装载MyModule语法演示:fromimpimportreloadreload(MyModule)2.参数module--模块对象。3.返回值返回模块对象。4.实例当前目录下有一个tes...
继续阅读 >
2020
12-15
12-15
python 实现socket服务端并发的四种方式
多进程&多线程服务端:多进程和多线程的开启方式相同。缺点:<1>由于Cpython的GIL,导致同一时间无法运行多个线程;<2>不可能无限开进进程或线程解决办法:多进程、concurrent.futures.ProcessPoolExecutor、线程池importsocketfrommultiprocessingimportProcessfromthreadingimportThreadclassMyTcpServer:def__init__(self,ip,port):self.ip=ipself.port=portself.server=socket.socket()s...
继续阅读 >
2020
12-15
12-15
Python获取指定网段正在使用的IP
#!/usr/bin/envpython#-*-coding:utf-8-*-'''''使用方法样例pythontest20.py192.168.1.1(会扫描192.168.1.1-255的ip)多线程加速后大概十几秒'''importplatformimportsysimportosimporttimeimportthreadinglive_ip=0defget_os():os=platform.system()ifos=="Windows":return"n"else:return"c"defping_ip(ip_str):cmd=["ping","-{op}".format(op=get_os()),"1",ip_str]outpu...
继续阅读 >
2020
12-15
12-15
python利用pytesseract 实现本地识别图片文字
#!/usr/bin/envpython3#-*-coding:utf-8-*-importglobfromosimportpathimportosimportpytesseractfromPILimportImagefromqueueimportQueueimportthreadingimportdatetimeimportcv2defconvertimg(picfile,outdir):'''调整图片大小,对于过大的图片进行压缩picfile:图片路径outdir:图片输出路径'''img=Image.open(picfile)width,height=img.sizewhile(width*height>4000000):#...
继续阅读 >
2020
12-15
12-15
python 利用百度API识别图片文字(多线程版)
#!/usr/bin/envpython3#-*-coding:utf-8-*-"""CreatedonTueJun1209:37:382018利用百度api实现图片文本识别@author:XnCSD"""importglobfromosimportpathimportosfromaipimportAipOcrfromPILimportImagefromqueueimportQueueimportthreadingimportdatetimedefconvertimg(picfile,outdir):'''调整图片大小,对于过大的图片进行压缩picfile:图片路径outdir:图片输出路径'''img=Image.o...
继续阅读 >
2020
12-15
12-15
Python 数据分析之逐块读取文本的实现
背景《利用Python进行数据分析》,第6章的数据加载操作read_xxx,有chunksize参数可以进行逐块加载。经测试,它的本质就是将文本分成若干块,每次处理chunksize行的数据,最终返回一个TextParser对象,对该对象进行迭代遍历,可以完成逐块统计的合并处理。示例代码文中的示例代码分析如下:frompandasimportDataFrame,Seriesimportpandasaspdpath='D:/AStudy2018/pydata-book-2nd-edition/examples/ex6.csv'#chunk...
继续阅读 >
2020
12-15
12-15
Python 2.6.6升级到Python2.7.15的详细步骤
最近在使用Python处理MySQL数据库相关问题时,需要用到Python2.7.5及以上版本,而centos6.5等版本操作系统默认自带的版本为2.6.6,因此需要对python进行升级。Python升级的步骤大致分为如下步骤:安装依赖包下载安装包并上传至操作系统,下载路径解压、编译、安装配置相关路径下的python命令修改yum启动路径1.安装依赖包#编译时需要使用gcc,故需先检查并安装gccyuminstallgcc-y2.下载安装包并上传至操作...
继续阅读 >
python的pip是其包管理工具,相当方便好用。本文只介绍pip如何通过其freeze命令打离线包,及其离线包的安装脚本。这个知识点,特别适用于不适合连通互联网,设备需要物理隔绝,保密要求严格的客户环境。环境操作系统:Centos7.7python版本:2.7客户网络环境:离线研发网络环境:联网pip安装(1)下载rpm包首先研发环境(联网),去https://pkgs.org/download/python-pip选择合适的piprpm离线包下载,如下图:选择一个rpm...
继续阅读 >
2020
12-14
12-14
python中time、datetime模块的使用
1、前言如果您从事过pythonweb的开发,那一定有过这样的经历,对于各种复杂繁琐的业务逻辑,掺杂着各种各样的时间约束,让人很容易搞的头晕眼花,比如展示出一天内用户进行过的所有操作记录,再比如进行验证码验证时获取当前时间与验证码生成时间进行比较,检查是否超过10分钟过期时间之类。这些关于时间的业务逻辑,要求我们必须能熟练掌握python中关于时间的两个模块,time和datetime,只有用好了这两个模块,我们才能在代码中...
继续阅读 >