关于我一个有思想的程序猿,终身学习实践者,目前在一个创业团队任teamlead,技术栈涉及Android、Python、Java和Go,这个也是我们团队的主要技术栈。Github:https://github.com/hylinux1024微信公众号:终身开发者(angrycode)Flask中全局变量有current_app、request、g和session。不过需要注意的是虽然标题是写着全局变量,但实际上这些变量都跟当前请求的上下文环境有关,下面一起
系统 2019-09-27 17:52:39 1924
文件操作对编程语言的重要性不用多说,如果数据不能持久保存,信息技术也就失去了意义。按照本人经验,IO也是蛮头疼的一件事,因为不会用得太多,所以总是记不住API,每次都要重新google就会打断思路,还不一定每次都快速得到正确的文章。本文内容包括:文件的读写操作文件的各种系统操作存储对象遍历文件上代码:importosimportos.pathrootdir="d:/code/su/data"#指明被遍历的文件夹forparent,dirnames,file
系统 2019-09-27 17:52:30 1924
glob模块说明:1、glob是python自己带的一个文件操作相关模块,用它可以查找符合自己目的的文件,就类似于Windows下的文件搜索,支持通配符操作*、?、[]这三个通配符,*代表0个或多个字符,?代表一个字符,[]匹配指定范围内的字符,如[0-9]匹配数字。glob.glob("字符串+通配符")该方法返回指定路径所有匹配的文件的列表,该方法需要一个参数用来指定匹配的路径字符串(本字符串可以为绝对路径也可以为相对路径),其返回的文件名只包括当前目
系统 2019-09-27 17:52:15 1924
前言今天就简单的对日志做个封装,实际工作中直接拿去用吧方法1"""------------------------------------@Time:2019/5/228:12@Auth:linux超@File:logfile.py@IDE:PyCharm@Motto:Realwarriors,daretofacethebleakwarning,daretofacetheincisiveerror!-----------------------------
系统 2019-09-27 17:51:39 1924
关于声明并初始化二维列表想要快速创建一个二维列表如:5x3的二维列表[[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]正确用法:#先创建一个一维列表tmp=[0,]*3result=[]foriinrange(5):#拷贝对象result.append(tmp.copy())result[0][1]=1print(result)#[[0,1,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]误用:#得到的
系统 2019-09-27 17:51:23 1924
打开excel文件读取数据data=xlrd.open_workbook("excelFile.xls")读取工作表table=data.sheets()[0]#通过索引顺序获取table=data.sheet_by_index(0)#通过索引顺序获取table=data.sheet_by_name(u'Sheet1')#通过名称获取获取整行和整列的值(数组)table.row_values(i)#获取整行值table.col_values(i)#获取整列
系统 2019-09-27 17:51:17 1924
步骤:1.掌握几种对象及其关系2.了解每类对象的基本操作方法3.通过转化关系转化涉及对象1.datetime>>>importdatetime>>>now=datetime.datetime.now()>>>nowdatetime.datetime(2018,1,12,23,9,12,946118)>>>type(now)2.timestamp>>>importtime>>>time.time()1421075455.5682433.timetuple>>
系统 2019-09-27 17:51:17 1924
python脚本为敏捷开发脚本,在zabbix监控也起到重要作用,以下是使用python脚本发送告警邮件配置方法。脚本如下:#!/usr/bin/python#coding:utf-8importsmtplibfromemail.mime.textimportMIMETextimportsysmail_host='smtp.126.com'mail_user='username'mail_pass='passwd'mail_postfix='126.com
系统 2019-09-27 17:50:36 1924
python多线程#创建线程threading_list=[]t1=threading.Thread(target=music,args=(u'爱情买卖',))threading_list.append(t1)t2=threading.Thread(target=move,args=(u'阿凡达',))threading_list.append(t2)fortinthreading_list:#启动线程t.setDaemon(True)#将线程声明为守护线
系统 2019-09-27 17:50:32 1924
最近在工作中遇到一个问题,就是有一个功能希望在各种服务器上实现,而服务器上的系统版本可能都不一样,有的是CentOS6.x,有的是CentOS7.x。需要说明的一点是,CentOS6.x上的Python版本是2.6.x的,而CentOS7.x上的Python版本是2.7.x的,这意味着我要实现的功能要适配这两种版本的系统。你可能会说,这有什么的,自己写的时候,注意一下就好了。事情其实没有那么容易,我要实现的功能是基于一个框架进行定制,需要修改不少的框架代码
系统 2019-09-27 17:50:30 1924
bsddb模块是用来操作bdb的模块,bdb是著名的BerkeleyDB,它的性能非常好,mysql的存储后端引擎都支持bdb的方式。这里简单介绍一些关于bsddb的使用方法。bdb不同于一般的关系数据库,它存储的数据只能是以key和value组成的一对数据,使用就像python的字典一样,它不能直接表示多个字段,当要存储多个字段的数据时,只能把数据作为一个整体存放到value中。使用bsddb面临的第一问题是使用什么数据访问方法,bdb支持四种:btre
系统 2019-09-27 17:50:30 1924
打开文件open函数返回一个文件对象,基本语法:●file_object=open(file_name,access_mode='r'[,buffering=-1])file_name是包含要打开的文件名字的字符串,它可以是相对路径或者绝对路径.●可选变量access_mode也是一个字符串,代表文件打开的模式.通常,文件使用模式‘r',‘w',或是‘a'模式来打开,分别代表读取,写入和追加.●另外一个可选参数buffering用于指示访问文件所采用的缓冲
系统 2019-09-27 17:50:07 1924
前几天,我们Python猫交流学习群里的M同学提了个问题。这个问题挺有意思,经初次讨论,我们认为它无解。然而,我认为它很有价值,应该继续思考怎么解决,所以就在私密的知识星球上记录了下来。万万没想到的是,在第二天,有两位同学接连给出了解决方法!由此,群内出现了一轮热烈的技术交流。本文将相关的内容要点作了梳理,并由此引申到更进一步的学习话题,希望对你有所帮助。1、如何动态生成变量名?M同学的问题如下:打扰一下大家,请教一个问题,已知list=['A','B',
系统 2019-09-27 17:49:37 1924
阅读更多初学Python爬虫时都会从最简单的方法开始,以下为几种常见的基础做法。"""简单的循环处理"""importrequestsurl_list=["https://www.baidu.com","https://www.cnblogs.com/"]forurlinurl_list:result=requests.get(url)print(result.text)"""线程池处理"""importrequestsfromconcurrent.fut
系统 2019-09-27 17:49:32 1924
Python入门之软件开发规范1、软件开发规范--分文件(1)为什么使用软件开发规范:当几百行--大几万行代码存在于一个py文件中时存在的问题:不便于管理修改可读性差加载速度慢这时可以使用软件开发规范,规范项目目录结构,规范代码,遵循PEP8规范,能够更加清晰,合理的开发。(2)软件开发规范--约定俗称<1>bin--启动文件(启动接口)start.py项目启动<2>lib--公共文件(大家需要的功能)commom.py放置一些常用的公共组件函数,像是服务
系统 2019-09-27 17:49:27 1924