http://blog.chinaunix.net/uid-23504396-id-4661783.html 执行subprocess的时候,执行不是问题最麻烦的是获取进程执行后的回显来确认是否正确执行,还不能阻塞还要获取进程执行后的返回状态确认进程是否正确结束,也不能阻塞 分开解决这个问题我们先解决第一个问题,获取回显 一般获取回显,代码都是如下写法 点击(此处)折叠或打开 sub_process = subprocess.Popen(command, stdin = subprocess.P…
引入configparser,直接read整个INI文件,再调用get即可.但需要注意的是,如果INI文件本身不太规范,就会报各种错,而这又常常不可避免的.本文自定义函数通过try...except..来自动纠正再重读. 此外,注册表导出文件大概齐就是INI文件格式,但取初一行的声明也会被认定为没有SECTION头而报错.本文也进行了自动纠正. 极大概率是早有人造过更好的轮子,我写在这里权当作自己学习Python的笔记.功能.特色如下: getINIValue函数三个参数,iniFile, se…
前言 我们在开发中常遇到一种场景,Bean里面有一些参数是比较固定的,这种时候通常会采用配置的方式,将这些参数配置在.properties文件中,然后在Bean实例化的时候通过Spring将这些.properties文件中配置的参数使用占位符"${...}"替换的方式读入并设置到Bean的相应参数中. 这种做法最典型的就是JDBC的配置,本文就来研究一下.properties文件读取及占位符"${}"替换的源码,首先从代码入手,定义一个DataSource,模拟一下…
#文件创建 #!/usr/bin/python3 'makeTextFile.py--create text file' import os ls = os.linesep #get filenamefname = input('please enter the filename:')while True:    if os.path.exists(fname):        print ( "Error : '%s' already exists" % fname)    else…
#编译方式,python3 文件名 #!/usr/bin/python3#print('hello world') mystring = 'hello world'print (mystring) #测试输入 #!\usr\bin\python3 num = input('Please enter an num :')print ("now Doubling your num %d" % (int(num)*2)) #字符串和切片 #!/usr/bin/python3 pystr =…
(1)打印到屏幕:print (2)读取键盘输入:input/raw_input #键盘输入 str = raw_input("Please enter:"); print ("你输入的内容是: ", str) str = input("Please enter:"); print ("你输入的内容是: ", str) (3)打开文件 open 关闭close 读取read #打开与关闭文件 # 打开一个文件 fo = ope…
本系列是以陈儒先生的<python源码剖析>为学习素材,所记录的学习内容.不同的是陈儒先生的<python源码剖析>所剖析的是python2.5,本系列对应的是python3.7,所以某些地方会和原著有出入,另外我在介绍的过程中会穿插大量的python代码,不仅仅是介绍如何实现的,还会使用python实际地对我们的结论进行演示.下面就开始吧.不过在开始分析python的实现之前,我们有很多的准备工作要做.比如,首先应该了解一下python的整体架构,来对python的实现有一个宏观…
NLP大赛冠军总结:300万知乎多标签文本分类任务(附深度学习源码)       七月,酷暑难耐,认识的几位同学参加知乎看山杯,均取得不错的排名.当时天池AI医疗大赛初赛结束,官方正在为复赛进行平台调试,复赛时间一拖再拖.看着几位同学在比赛中排名都还很不错,于是决定抽空试一试.结果一发不可收拾,又找了两个同学一起组队(队伍init)以至于整个暑假都投入到这个比赛之中,并最终以一定的优势夺得第一名. 1. 比赛介绍 这是一个文本多分类的问题:目标是“参赛者根据知乎给出的问题及话题标签的绑定关系的训…
python:让源码更安全之将py编译成so 应用场景 Python是一种面向对象的解释型计算机程序设计语言,具有丰富和强大的库,使用其开发产品快速高效. python的解释特性是将py编译为独有的二进制编码pyc文件,然后对pyc中的指令进行解释执行,但是pyc的反编译却非常简单,可直接反编译为源码,当需要将产品发布到外部环境的时候,源码的保护尤为重要. 准备工作 环境是可为linux/centos,我Windows10本地是Bash on Ubuntu on Windows,用起来很方便,命…
1.VS Git插件 1.1 环境 VS2015+GitLab 1.2 Git操作过程图解 1.3 常见名词解释 拉取(Pull):将远程版本库合并到本地版本库,相当于(Fetch+Meger) 获取(Fetch):从远程版本库获得最新版本 合并(Meger):将两个版本库进行合并操作 提交(Commit):将所做的更改,存入本地暂存库 推送(Push):将所做的更改,存入远程版本库 同步(Pull+Push):先将远程库拉取,再将本地库推送到远程库,相当于(Pull+Push) 变基到(Swi…
一. 学习源码的目的 1. 为了扩展和调优:掌握框架的工作流程和原理 2. 为了提升自己的编程技能:学习他人的设计思想.编程技巧 二. 学习源码的方法 方法一: 1)掌握研究的对象和研究对象的核心概念:搞明白框架都能做什么,是怎么做的. 比如我们要研究Spring的源码,那么研究的对象就是Spring,Spring的核心概念有IOC.DI.AOP等,那么我们就需要搞明白这些核心概念能做什么,是怎么做的 2)从整体到部分 首先要弄清楚整体是由哪些部分组成起来工作的,然后再去研究各个部分是怎么做的.…
VS2015 Git 源码管理工具简单入门   1.VS Git插件 1.1 环境 VS2015+GitLab 1.2 Git操作过程图解 1.3 常见名词解释 拉取(Pull):将远程版本库合并到本地版本库,相当于(Fetch+Meger) 获取(Fetch):从远程版本库获得最新版本 合并(Meger):将两个版本库进行合并操作 提交(Commit):将所做的更改,存入本地暂存库 推送(Push):将所做的更改,存入远程版本库 同步(Pull+Push):先将远程库拉取,再将本地库推送到远程…
1.1 环境 Visual Studio + GitLab (其他版本同理) 1.2 Git操作过程图解 1.3 常见名词解释 拉取(Pull):将远程版本库合并到本地版本库,相当于(Fetch+Meger) 获取(Fetch):从远程版本库获得最新版本 合并(Meger):将两个版本库进行合并操作 提交(Commit):将所做的更改,存入本地暂存库 推送(Push):将所做的更改,存入远程版本库 同步(Pull+Push):先将远程库拉取,再将本地库推送到远程库,相当于(Pull+Push)…
在Yii中,当请求一个Url的时候,首先在application中获取request信息,然后由request通过urlManager解析出route,再在Module中根据route来创建controller并处理request.如:http://www.yiifans.com/index.php?r=site/login.会使用SiteController里面的actionLogin动作来处理这个请求. Yii中总共有三种控制器类 base\Controller.php        这个是…
springbootTest 学习源码链接 启动前,需要创建数据库表,修改自己的链接配置 create database test01; use test01; CREATE TABLE category_ ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(30), PRIMARY KEY (id) ) DEFAULT CHARSET=UTF8; insert into category_ values(null,'家具'); insert i…
百篇博客系列篇.本篇为: v18.xx 鸿蒙内核源码分析(源码结构篇) | 内核每个文件的含义 | 51.c.h .o 前因后果相关篇为: v08.xx 鸿蒙内核源码分析(总目录) | 百万汉字注解 百篇博客分析 | 51.c.h .o v09.xx 鸿蒙内核源码分析(调度故事篇) | 用故事说内核调度过程 | 51.c.h .o v10.xx 鸿蒙内核源码分析(内存主奴篇) | 皇上和奴才如何相处 | 51.c.h .o v13.xx 鸿蒙内核源码分析(源码注释篇) | 鸿蒙必定成功,也必然成…
8.0 序 我们日常会写各种各样的python脚本,在运行的时候只需要输入python xxx.py程序就执行了.那么问题就来了,一个py文件是如何被python变成一系列的机器指令并执行的呢? 8.1 python程序的执行过程 python的执行原理可以用两个词来囊括:虚拟机.字节码 首先在python中有一个非常关键的东西,这个东西被称为解释器(interpreter),当我们在命令行中输入python时,就是为了激活这个解释器.当然如果后面还跟上了py文件,那么解释器会立刻被激活,然后执…
总算还是要来梳理一下这几天深入研究之后学习到的东西了. 这几天一直在看以前跟jd对接的项目写的那个gevent代码.为了查错,基本上深入浅出了一次gevent几个重要部件的实现和其工作的原理. 这里用一个简单demo依次分析运行流程和介绍相关概念最后得出结论: import gevent def test_1(): print '切换不出去' print '切换出去我不是循环' gevent.sleep(1) def test_2(): print '切换' print '切换出去我去' gev…
SimpleHTTPServer.SimpleHTTPRequestHandler继承了BaseHTTPServer.BaseHTTPRequestHandler. 源码中主要实现了BaseHTTPServer.BaseHTTPRequestHandler处理时需要调用的do_Head()和do_GET()函数.这类函数主要是在BaseHTTPRequestHandler在接受请求并判断请求头中的command之后调用的. def handle_one_request(self): ... ..…
源码: <!DOCTYPE html> <head> <meta charset="utf-8"> <script type="text/javascript" src="js/echarts.js"></script> <script type="text/javascript" src="js/jquery-3.3.1.js">&l…
edgedb 是基于python开发的,同时集成了cython 以下为包的setup.py 配置,从里面我们可以看到关于edgedb 的一些依赖 以及构建过程 setup.py 源码 整体配置不算很多,500 多行,主要是cython extension 配置以及pg 构建配置,以及pg extension 配置,其中添加了关于pg 以及 pg 扩展build 的自定义cmdclass 代码 # # This source file is part of the EdgeDB open sour…
9.0 序 下面我们就来剖析python运行字节码的原理,我们知道python虚拟机是python的核心,在源代码被编译成字节码序列之后,就将有python的虚拟机接手整个工作.python虚拟机会从编译得到的PyCodeObject对象中一次读取每一条字节码指令,并在当前的上下文中去执行,最终执行完所有的字节码. 9.1 python虚拟机的执行环境 python的虚拟机实际上是在模拟操作系统运行可执行文件的过程,我们先来看看在一台普通的x86的机器上,可执行文件是以什么方式运行的.在这里主要…
应用场景 Python是一种面向对象的解释型计算机程序设计语言,具有丰富和强大的库,使用其开发产品快速高效. python的解释特性是将py编译为独有的二进制编码pyc文件,然后对pyc中的指令进行解释执行,但是pyc的反编译却非常简单,可直接反编译为源码,当需要将产品发布到外部环境的时候,源码的保护尤为重要. 准备工作 环境是可为linux/centos,我Windows10本地是Bash on Ubuntu on Windows,用起来很方便,命令行打bash即进入命令行 思路是先将py转换…
学习开源代码,是一种很快的提升自己的学习方法.Wordpress作为一个开源的博客系统,非常优秀,应用广泛,使用起来简单方便,具有丰富的主题和插件,可以按照自己的需求来任意的进行修改.所以就从wordpress的源码开始自己的php学习之路,希望自己能坚持下去! Wordpress版本:3.1.2 平台:新浪sae平台.monk.sinaapp.com Wordpress是一个单入口的文件,所有的前端处理都必须经过index.php,这是通过修改web服务器的rewrite规则来实现的.这种做法…
前言 最近学习了一下jQuery源码,顺便总结一下,版本:v2.0.3 主要是通过简单模拟实现jQuery的封装/调用.选择器.类级别扩展等.加深对js/Jquery的理解. 正文 先来说问题: 1.jQuery为什么能使用$的方式调用,$是什么.$()又是什么.链式调用如何实现的 2.jQuery的类级别的扩展内部是怎样实现的,方法级别的扩展有是怎样实现的,$.fn又是什么 3.jQuery选择器是如何执行的,又是如何将结果包装并返回的 带着这些问题,我们进行jquery的模拟实现,文章下方有…
有道云笔记 - Markdown模板 附 本文的Markdown源码镜像: https://github.com/yanglr/AlgoSolutions/blob/master/Youdao_Note_Markdown_Template.md 点击"Raw"可看到源码,欢迎fork或star~ 有道云笔记 - Markdown模板 一.利用Markdown可以做什么? 代码高亮 To-do List 流程图: 序列图: 甘特图: 表格: 表格 Mathematical formula…
gclient来管理源码的checkout, update等. gclient是google专门为这种多源项目编写的脚本,它可以将多个源码管理系统中的代码放在一起管理.甚至包括将Git和svn代码放在一起. 重点说明下和gclient密切相关的两类文件.gclient和DEPS. .gclient文件是gclient的控制文件,该文件放在工作目录的最上层.是主文件, ".gclient"文件是一个Python的脚本 它指定以下变量 solutions:一组字典,用于指定要获取的项目 此…
目录 写在前面 获取源代码 源代码的组织 windows下编译CPython 调试CPython 小结 参考 博客:blog.shinelee.me | 博客园 | CSDN 写在前面 如果对Python源码感兴趣,那"窥探"其实现的最佳方式就是调教它,不,调试它. 获取源代码 Python的官方默认实现为CPython,即C语言实现(主要指解释器的实现,其他实现见Other Interpreter Implementations).CPython的源代码可以从官网pyhton.org…
13.0 序 这一章我们就来看看python中类是怎么实现的,我们知道C不是一个面向对象语言,而python却是一个面向对象的语言,那么在python的底层,是如何使用C来支持python实现面向对象的功能呢?带着这些疑问,我们下面开始剖析python中类的实现机制.另外,在python2中存在着经典类(classic class)和新式类(new style class),但是到Python3中,经典类已经消失了.并且python2官网都快不维护了,因此我们这一章只会介绍新式类. 13.1 p…
12.0 序 函数是任何一门编程语言都具备的基本元素,它可以将多个动作组合起来,一个函数代表了一系列的动作.当然在调用函数时,会干什么来着.对,要在运行时栈中创建栈帧,用于函数的执行. 在python中,PyFrameObject对象就是一个对栈帧的模拟,所以我们即将也会看到,python虚拟机在执行函数调用时会动态地创建新的PyFrameObject对象.随着函数调用链的增长,这些PyFrameObject对象之间也会形成一条PyFrameObject对象链,这条链就是对象x86平台上运行时栈…