Python
文章平均质量分 74
Python使用
宗而研之
计算机视觉应用开发及部署方向
展开
-
Python中常见的配置文件写法
在开发过程中,我们常常会用到一些固定参数或者是常量。对于这些较为固定且常用到的部分,往往会将其写到一个固定文件中,避免在不同的模块代码中重复出现从而保持核心代码整洁。这个固定文件我们可以直接写成一个 文件,例如 或 ,这样的好处就是能够在同一工程下直接通过 来导入当中的部分;但如果我们需要在其他非 Python 的平台进行配置文件共享时,写成单个 就不是一个很好的选择。这时我们就应该选择通用的配置文件类型来作为存储这些固定的部分。目前常用且流行的配置文件格式类型主要有 、、、、 等,这些类型的配置文转载 2022-06-02 16:08:34 · 1260 阅读 · 0 评论 -
一文掌握vscode远程调试python代码
在《一文掌握vscode远程gdb调试》文章中,介绍了如何使用 vscode 调试 c/c++ 代码,作为该文的姊妹篇,本文对调试 python 代码的方法做一个整理。原创 2022-04-22 14:24:43 · 18616 阅读 · 5 评论 -
Python之re模块实现正则表达式
转载 2022-03-30 17:31:15 · 7541 阅读 · 3 评论 -
简单介绍 os.path 模块常用方法
os.path在python中也算是一个常用的模块,特别是和文件系统打交道时,涉及到文件、目录操作经常会用到,你去看一些框架的源代码的时候也经常会使用到这些方法。如果去看官方文档,os.path 大概提供了近20个方法,其实比较常用的方法我总结的9个,你可以跟着操作下,很容易就记住了。其实看方法名都知道具体是做什么的。1、os.path.abspath获取文件的绝对路径path="test.py"print(os.path.abspath(path))#C:\Users\l...转载 2022-02-16 17:31:21 · 11151 阅读 · 1 评论 -
Linux之python发送邮件
python发送邮件原创 2022-02-14 17:54:32 · 1809 阅读 · 3 评论 -
Linux之Python代码打包工具Nuitka使用说明
Linux之Python代码打包工具Nuitka使用说明原创 2021-11-26 15:07:51 · 15969 阅读 · 0 评论 -
这40个Python可视化图表案例,强烈建议收藏!
Python可视化图表案例转载 2021-10-08 21:23:52 · 18052 阅读 · 4 评论 -
Python之pipreqs自动生成requirements.txt
0 背景当我们要把我们的 python 项目发布,或打包给别人使用时,需要指定各个软件的版本,即生成 requirements.txt,这个过程可以自动生成,不需要手写。有人会说,直接使用 pip freeze 工具也可以生成 requirements.txt,但这种方式有以下三个局限:pip freeze 只保存通过 pip install 安装的软件包; pip freeze 会保存当前用户下所有的 python 软件包,实际上有很多软件是其它项目中应用的(除非是在 virtualenv原创 2021-03-25 16:01:28 · 2015 阅读 · 1 评论 -
Python之命令行参数解析
Python 做为一个脚本语言,可以很方便地写各种工具。当你在服务端要运行一个工具或服务时,输入参数似乎是一种硬需(当然你也可以通过配置文件来实现)。如果要以命令行执行,那你需要解析一个命令行参数解析的模块来帮你做这个苦力活。Python 本身就提供了三个命令行参数解析模块,我这里罗列一下它们的大致情况供你了解。getopt,只能简单的处理命令行参数 optparse,功能强大,易于使用,可以方便地生成标准的、符合Unix/Posix 规范的命令行说明。 argparse,使其更加容易的编写转载 2020-08-24 14:17:50 · 5569 阅读 · 2 评论 -
Python之pdb代码调试
调试程序对于开发人员是一项非常重要的技能,它使得我们能够查看程序的运行过程,帮助我们准确的定位程序中的错误。然而,令人意外的是,无数的Python工程师居然不知道如何对Python代码进行单步调试,遇到问题的时候只能通过print函数打印变量中间值这种低效的方式。究其原因,还是因为这类Python工程师没有意识到Python的强大,仅仅用Python来解决一些很简单的事情,如果总是写非常短小的Python代码,可能确实不需要调试器。但是,如果代码量大,逻辑复杂以后,还是用print函数打印变量中间值的方转载 2020-07-11 20:10:07 · 5315 阅读 · 0 评论 -
一行代码简化Python异常信息:错误清晰指出,排版简洁美观
即使是Python,报错时也令人头大。看着这一堆乱麻,不知道是该怀疑人生,还是怀疑自己手残。那么,Python异常输出美化工具PrettyErrors了解一下?只需一个import,报错也能整齐划一,错误代码位置、错误原因清晰明了,一眼就能看清。debug仿佛都没有那么痛苦了。一行代码简化报错先来试试一个简单的错误。def foo(): 1/0foo()...转载 2019-12-31 09:39:06 · 1110 阅读 · 0 评论 -
Python之pytest单元测试方法
参考:https://zhuanlan.zhihu.com/p/299689201 单元测试单元测试(又称为模块测试, Unit Testing)是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类(子类)中的方法。为什...原创 2019-03-21 18:08:57 · 5702 阅读 · 0 评论 -
Python之pyinstaller打包成可执行文件执行
参考:https://www.cnblogs.com/mywolrd/p/4756005.html0 背景在TX2嵌入式上用python开发时,为了隐藏python源码,或者说交付客户时减少操作,避免重复安装一堆依赖库,需要将源码打包为可执行文件,查看了好几种方式,用得比较广的是pyinstaller。PyInstaller其实就是把python解析器和你自己的脚本打包成一个可执行的文...原创 2019-03-21 14:34:56 · 1776 阅读 · 0 评论 -
Python编程代码规范(Google Style)
原文:https://www.jianshu.com/p/8b6c425b65a6在编程过程中,要遵循一定的规则,包括函数命名、变量命名、代码注释等,虽然不遵循也能使代码运行成功,但优秀的、整洁的代码必定是遵循潜移默化的一些规则,这样别人阅读起来也会很轻松,否则将来甚至自己也看不懂。为了能及时发现问题,可使用python的IDLE来编写,如pycharm等工具遵循PEP 8规则,会自动发现并提...转载 2018-07-23 10:01:56 · 3941 阅读 · 0 评论 -
Python之kafka消息队列操作入门
1 kafka简介1.1 什么是kafkakafka是一个分布式、高吞吐量、高扩展性的消息队列系统。kafka最初是由Linkedin公司开发的,后来在2010年贡献给了Apache基金会,成为了一个开源项目。主要应用在日志收集系统和消息系统,相信大家之前也听说过其他的消息队列中间件,比如RabbitMQ、AcitveMQ,其实kafka就是这么一个东西,也可以叫做KafkaMQ。总之,K...原创 2019-10-10 11:49:47 · 6953 阅读 · 1 评论 -
Python之pyc文件作用及生成方法
参考:https://www.zhihu.com/question/302966171 什么是pyc首先了解下python的运行机制及特性:当我们运行python文件程序的时候,Python解释器将源码转换为字节码,然后再由解释器来执行这些字节码,整体执行流程如下:完成模块的加载和链接; 将源代码翻译为PyCodeObject对象(字节码),并将其写入内存当中(方便CPU读取,起到加...原创 2019-02-15 10:03:14 · 12735 阅读 · 0 评论 -
Python之子进程subprocess模块
参考:https://www.cnblogs.com/breezey/p/6673901.html1 背景在用python编程时,我们经常会需要调用外部命令,比如用ffmpeg将rtsp码流保存为mp4视频,我们可以在终端使用如下指令ffmpeg -rtsp_transport tcp -i rtsp://***/h264/ch1/main/av_stream -c copy -f ...转载 2019-06-24 10:57:43 · 2405 阅读 · 0 评论 -
Python之debug神器PySnooper使用方法
0 前言使用python开发过程中,总是避免不了debug。传统的debug过程大致分为两种:a)断点+单步调试。断点+单步调试估计是用的最多的了,对于较大型项目来说,其流程大致为:先在关键的代码位置加上print语句,通过分析print的值将范围缩小,这个过程可能需要重复多次,使用print的方法,一般可以将范围缩小到一个比较完整的功能模块中;然后在可能出现bug的模块中的关键部分打...转载 2019-08-14 18:45:49 · 1978 阅读 · 1 评论 -
Python之多进程与多线程
前言:为什么有人说 Python 的多线程是鸡肋,不是真正意义上的多线程?看到这里,也许你会疑惑。这很正常,所以让我们带着问题来阅读本文章吧。问题:1、Python多线程为什么耗时更长?2、为什么在Python里面推荐使用多进程而不是多线程?1 基础知识现在的PC都是多核的,使用多线程能充分利用CPU来提供程序的执行效率。1.1 线程线程是一个基本的CPU执行单元。...转载 2019-10-14 09:49:30 · 61971 阅读 · 9 评论 -
Python之jinja2模板引擎生成HTML
0 背景在之前的文章中,我介绍过《Python之生成HTML文件》以及《HTML零基础入门教程(详细)》,手动生成了html文件,在实际使用的时候,我们完全可以套用模板文件来生成,免去了一条一条手写的麻烦。关于python的模板引擎有很多种类,本文选择的是比较常用的一种jinja2,接下来对该引擎的使用做一个介绍。1 jinja2介绍Jinja2 是一个现代的,设计者友好的,仿照 Dj...原创 2019-09-03 17:13:45 · 18151 阅读 · 3 评论 -
Python之代码性能分析工具(时间+内存)
0 背景在运行复杂的Python程序时,执行时间会很长,这时也许想提高程序的执行效率。但该怎么做呢?首先,要有个工具能够检测代码中的瓶颈,例如,找到哪一部分执行时间比较长。接着,就针对这一部分进行优化。同时,还需要控制内存和CPU的使用,这样可以在另一方面优化代码。本文主要介绍两种最常用的监控工具。1. 时间分析line_profiler模块可以给出执行每行代码所需占用的CPU时间,首...原创 2019-10-09 09:52:20 · 4334 阅读 · 0 评论 -
Python之调用MAG14热成像仪C++接口SDK
机器人上使用某型号的热成像仪,厂家提供了C++接口的SDK,而我们的主程序是python,因此参考《Python调用C++程序的几种方法》,利用boost的方式实现调用(该博文不具有通用性,目的是记录过程)在TX2上完成热成像仪的采集工作,因此首先给厂家提供TX2的交叉编译工具《NVIDIA TX2交叉编译工具》,如图所示,第一个表示交叉编译工具,第二个表示厂家返回的SDK解压后, 在...原创 2019-02-14 20:42:07 · 2495 阅读 · 0 评论 -
Python异常捕获与处理
转载自:JmilkFan:http://blog.csdn.net/jmilk异常异常即非正常状态,在Python中使用异常对象来表示异常。若程序在编译或运行过程中发生错误,程序的执行过程就会发生改变,抛出异常对象,程序流进入异常处理。如果异常对象没有被处理或捕捉,程序就会执行回溯(Traceback)来终止程序。异常类型通用异常类型表异常 描述 BaseExcep...转载 2017-10-09 10:43:20 · 55702 阅读 · 0 评论 -
Python之Socket自动重连
问题描述现有一个tcp客户端程序,需定期从服务器取数据,但由于种种原因(网络不稳定等)需要自动重连。测试服务器示例代码:https://github.com/mike-zhang/pyExamples/blob/master/socketRelate/tcpServer1_multithread.py解决方案'''tcp client with reconnectE-Mail...转载 2017-12-15 11:16:01 · 13531 阅读 · 2 评论 -
Python之TCP Socket网络编程
0 背景Socket 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的,例如我们每天浏览网页、QQ 聊天、收发 email 等等。要解决网络上两台主机之间的进程通信问题,首先要唯一标识该进程,在 TCP/IP 网络协议中,就是通过IP地址、协议、端口号三元组来标识进程的,解决了进程标识问...原创 2017-12-14 11:52:01 · 4281 阅读 · 0 评论 -
Python初级教程:入门详解
Python入门学习原创 2017-10-26 10:39:14 · 983 阅读 · 0 评论 -
《莫烦Python3基础教程》学习笔记
Python自调用、可变参数、关键字参数等原创 2017-10-12 17:13:04 · 8357 阅读 · 0 评论 -
《零基础入门学习Python》学习笔记(52-70)
《零基础入门学习Python》学习笔记(52-70)原创 2017-10-11 11:20:21 · 1061 阅读 · 0 评论 -
《零基础入门学习Python》学习笔记(26-51)
《零基础入门学习Python》学习笔记(26-51)原创 2017-09-21 09:37:06 · 4258 阅读 · 0 评论 -
《零基础入门学习Python》学习笔记(1-25)
《零基础入门学习Python》学习笔记1-25原创 2017-09-05 16:38:28 · 1904 阅读 · 1 评论 -
Python读取解析JSON数据
什么是JSONJSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Pyth...原创 2018-06-26 17:33:58 · 3650 阅读 · 0 评论 -
Python之ConfigParser读取配置文件信息
参考:http://www.cnblogs.com/victorwu/p/5762931.html在项目过程中,需要设置各种IP和端口号信息等,如果每次都在源程序中更改会很麻烦,因此将需要修改的参数写在配置文件中,每次只需修改配置文件,就可以实现同样的目的。Python 标准库的 ConfigParser 模块提供一套 API 来读取和操作配置文件。因此在程序开始位置要导入该模块,注意区分是p...转载 2018-07-09 15:43:04 · 2367 阅读 · 0 评论 -
pip升级后Import Error:cannot import name main解决方案
在Ubuntu上安装软件,不小心升级了pip,导致使用时报错如下原创 2018-05-22 19:29:05 · 104660 阅读 · 28 评论 -
Python之代码规范管理工具(pylint、black)
参考链接在之前《使代码整洁的几种规范》文章中,介绍了比较常用的变量、函数等定义方法,本文专门针对python的代码风格进行介绍,主要用到两个超牛的工具pylink和black,可以对代码风格进行规范检测和自动优化。python界被广泛认同的代码风格是PEP8,这种规则对行长度、缩进、多行表达式、变量命名等内容进行了统一约定,但要注意的是,PEP8中有一些规范是为了方便阅读,而有一些规范实实...原创 2018-11-19 15:42:44 · 5971 阅读 · 3 评论 -
Python之生成HTML文件
参考:https://blog.csdn.net/reallocing1/article/details/51694967教程:http://www.runoob.com/html/html-basic.html在做图像处理时会有结果数据生成,一种好的方法是将结果保存为HTML文件,在文件中插入图片的超链接,就可以在网页中同时显示结果和图片。因此,本文对Python生成HTML的方法做一个...原创 2018-10-22 21:02:07 · 38275 阅读 · 0 评论 -
Python之time与datetime获得系统时间
python有两个模块可以用来获得系统时间,分别是time与datetime模块。平时经常用到,现查又找不到总结的比较全面的文章,因此做一个总结归纳。1 time模块time精度只能到秒,具体使用方法如下import time# 生成timestamptime.time()# 输出1970年到现在的时间间隔# 1539154145.183094time.localtime...原创 2018-10-10 14:46:42 · 6601 阅读 · 0 评论 -
Python之argparse模块的使用
我们在写python脚本的时候,有时候需要在运行的时候传入参数,而不是写死在程序里,这个时候就要用到argparse模块。argparse 是 Python 内置的一个用于命令项选项与参数解析的模块,通过在程序中定义好我们需要的参数,argparse 将会从sys.argv 中解析出这些参数,并自动生成帮助和使用信息。1 使用步骤该模块使用主要分三步:创建 ArgumentParser...原创 2018-10-12 15:38:19 · 3912 阅读 · 0 评论 -
Python之print格式化输出
1 %的方式1.1 打印字符串print ("My name is %s"%("zongxp"))1.2 打印整数print ("I am %d years old"%(25))1.3 打印浮点数print ("My height is %f m"%(1.75))1.4 打印浮点数(指定保留小数点位数)print ("My height is %.2f m"...原创 2018-10-11 10:32:03 · 453 阅读 · 0 评论 -
pip指定python位置安装软件包
由于电脑上安装了多个版本的pip,以及不同的pip对应不同的python,因此有时候使用pip install安装某个包时,可能会没有安装在想要的位置。具体而言,在我电脑上,运行pip --version时,输出如下pip 9.0.1 from /opt/anaconda3/lib/python3.6/site-packages (python 3.6)运行sudo pip --ve...原创 2018-09-25 18:16:45 · 7346 阅读 · 0 评论 -
Python关键字with和上下文管理
参考:https://zhuanlan.zhihu.com/p/27051142如果你有阅读源码的习惯,可能会看到一些优秀的代码经常出现带有 “with” 关键字的语句,它通常用在什么场景呢?今天就来说说 with 和 上下文管理器。对于系统资源如文件、数据库连接、socket 而言,应用程序打开这些资源并执行完业务逻辑之后,必须做的一件事就是要关闭(断开)该资源。比如 Python ...转载 2018-08-20 15:07:49 · 1698 阅读 · 0 评论