简介 subprocess模块用来创建新的进程,连接到其stdin.stdout.stderr管道并获取它们的返回码.subprocess模块的出现是为了替代如下旧模块及函数:os.system.os.spawn*.os.popen*.popen2.*.commands.*.强烈建议POSIX用户(Linux.BSD等)安装并使用较新的subprocess32模块,而不是Python 2.7自带的subprocess. 快捷函数 推荐用户使用call.check_call和check_outpu…
Python中的进程与线程 学习知识,我们不但要知其然,还是知其所以然.你做到了你就比别人NB. 我们先了解一下什么是进程和线程. 进程与线程的历史 我们都知道计算机是由硬件和软件组成的.硬件中的CPU是计算机的核心,它承担计算机的所有任务. 操作系统是运行在硬件之上的软件,是计算机的管理者,它负责资源的管理和分配.任务的调度. 程序是运行在系统上的具有某种功能的软件,比如说浏览器,音乐播放器等. 每次执行程序的时候,都会完成一定的功能,比如说浏览器帮我们打开网页,为了保证其独立性,就需要一个专…
ConfigParser 模块 一.ConfigParser简介ConfigParser 是用来读取配置文件的包.配置文件的格式如下:中括号“[ ]”内包含的为section.section 下面为类似于key-value 的配置内容 [db] db_host = 127.0.0.1 db_port = 22 db_user = root db_pass = rootroot [concurrent] thread = 10 processor = 20 中括号“[ ]”内包含的为section…
python模块 用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以在不同的.py文件中),n个 .py 文件组成的代码集合就称为模块.模块分为内建模块.自定义的模块.安装的第三方的模块 导入模块 Python之所以应用越来越广泛,在一定程度上也依赖于其为程序员提供了大量的模块以供使用,如果想要使用模块,则需要导入.导入模块有一下几种方…
logging 简单应用 将日志打印到屏幕 import logging logging.debug('debug message') logging.info('info message') logging.warning('warning message') logging.error('error message') logging.critical('critical message') 可见,默认情况下Python的logging模块将日志打印到了标准输出中,且只显示了大于等于WARN…
目录: shutil logging模块 shelve configparser subprocess xml处理 yaml处理 自定义模块 一,系统标准模块: 1.shutil:是一种高层次的文件操作工具,类似于高级API,而且主要强大之处在于其对文件的复制与删除操作更是比较支持好,是高级的文件.文件夹.压缩包处理模块,而且是系统的标准自带模块: copyfile(src, dst, *, follow_symlinks=True):拷贝文件,如果目标存在同名的文件会进行覆盖: import…
json & pickle Python中用于序列化的两个模块 json     用于[字符串]和 [python基本数据类型] 间进行转换 pickle   用于[python特有的类型] 和 [python基本数据类型]间进行转换 Json模块提供了四个功能:dumps.dump.loads.load 1.dumps序列化和loads反序列化 dumps()序列化 import json #导入json模块 info = { 'name':"zhangqigao", &qu…
logging模块 用于便捷记录日志且线程安全的模块(便捷的写文件的模块,不允许多个人同时操作文件) 1.单文件日志 import logging logging.basicConfig(filename='log.log', #指定往哪个文件里写 format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S %p', level=10, #只记录level…
一.subprocess 模块 1.了解os.system()与os.popen的区别及不足 1.1 os.system()可以执行系统指令,将结果直接输出到屏幕,同时可以将指令是否执行成功的状态赋值给变量保存,0表示执行成功 res=os.system('dir') #保存命令执行是否成功的状态 >>> import os >>> x=os.system('df') ---------------------------------------- 文件系统 1K-块…
linux系统下进入python交互式环境: 一.os 模块 1.1.os模块的exec方法簇: python交互界面中: In [1]: import os In [2]: os.exec os.execl os.execlp os.execv os.execvp os.execle os.execlpe os.execve os.execvpe In [2]: os.execl? Type: function String form: <function execl at 0xb73673e…
configparser模块: 此模块用于生成和修改常见配置文档. 一个常见配置文件(.ini的后缀名)格式如下: [DEFAULT] # DEFAULT 是指后面的字典里都会默认有的内容 ServerAliveInterval = 45 Compression = yes CompressionLevel = 9 ForwardX11 = yes [bitbucket.org] User = hg [topsecret.server.com] Port = 50022 ForwardX11 =…
本节目录: 1.shelve模块 2.xml模块 3.re模块 4.subprocess模块 5.logging模块 6.pymysql 1.shelve 模块 shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式 import shelve d = shelve.open('shelve_test') #打开一个文件 class Test(object): def __init__(self,n): self.n = n t…
文章目录: 1. time & datetime模块 2. os模块 3. random模块 4. sys模块 5. hashlib模块 6. json模块 7. shutil模块 8. logging模块 9. paramiko模块 10. subprocess模块 11. ConfigParser模块 12. xml处理模块 13. shelve模块 1.time & datetime模块: #_*_coding:utf-8_*_ import time import datetime…
目录 os模块 sys模块 json模块 subprocess模块 os模块 os模块主要是与操作系统打交道. 导入os模块 import os 创建单层文件夹,路径必须要存在 os.mkdir(路径/文件夹名) """不写路径就是在当前目录创建文件夹""" 创建多层文件夹,路径不存在会自动创建文件夹 os.makedirs(路径/文件夹名/文件夹名...) """不写路径就是在当前目录创建文件夹"&quo…
1.logging 日志开关,设置全局只打印什么级别的日子,默认是warning以下的都不打印 改默认级别:依次升高 logging.debug("") logging.info("") logging.warning("") logging.error("") logging.critical("") 看当前日志级别 输出到文件里: logging.basicConfig(filename="a…
深浅拷贝 有时候,尤其是当你在处理可变对象时,你可能想要复制一个对象,然后对其做出一些改变而不希望影响原来的对象.这就是Python的copy所发挥作用的地方. 定义了当对你的类的实例调用copy.copy()时所产生的行为.copy.copy()返回了你的对象的一个浅拷贝——这意味着,当实例本身是一个新实例时,它的所有数据都被引用了——例如,当一个对象本身被复制了,它的数据仍然是被引用的(因此,对于浅拷贝中数据的更改仍然可能导致数据在原始对象的中的改变). 定义了当对你的类的实例调用copy.…
一.configparse # 注释1 ; 注释2 [section1] # 节点 k1 = v1 # 值 k2:v2 # 值 [section2] # 节点 k1 = v1 # 值 1.获取所有节点 import configparser config = configparser.ConfigParser() config.read('test',encoding='utf-8') ret = config.sections() print(ret)#['section1', 'sectio…
当涉及到操作系统的时候,免不了要使用os模块,有时还要用到sys模块. 设计到并行程序,一般开单独的进程,而不是线程,原因是python解释器的全局解释器锁GIL(global interpreter lock),本文最后会讲到.使用进程可以实现完全并行,无GIL的限制,可充分利用多cpu多核的环境. os/sys模块 1.os模块 os.system() 函数可以启动一个进程,执行完之后返回状态码. os.fork() 复制一个进程,如果是子进程返回0,如果是父进程返回子进程的pid,使用这个…
一.TCP/IP相关知识 TCP/UDP提供进程地址,两个协议互不干扰的独自的协议       TCP :Transmission Control Protocol 传输控制协议,面向连接的协议,通信前需要建立通信信道(虚拟链路),结束后拆除链路,流式数据协议,可靠的连接                       UDP:User Datagram Protocol 用户数据报协议,无连接的协议,不可靠的连接   IP是主机到主机之间,在传输过程中是不会变的,不能超过MTU:最大传输单元 MA…
进程和线程 既然看到这一章,那么你肯定知道现在的系统都是支持“多任务”的操作,比如: Mac OS X,UNIX,Linux,Windows等. 多任务:简单地说就是同时运行多个任务.譬如:你可以一边看小电影,一边用word写感受,在一边录制,这就是多任务,至少同时有3个任务正在运行.还有很多任务在后台运行,只是桌面上没有显示而已. 现在,多核CPU已经很普遍了,但是,即使在过去单核的时代,也是可以执行多任务的.由于CPU执行代码都是顺序执行的,那么单核CPU是怎么执行多任务的呢?答案就是:操作…
s12-20160227-day07 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* BLOCKS =============================================================================*/ p, blockquote, ul, ol, dl, table, pre { margin…
1 接口与归一化设计 1.1 归一化概念: 归一化的好处: 1.归一化让使用者无需关心对象的类是什么,只需要知道这些对象都具备某些功能就可以了,这极大降低了使用者的使用难度. 2.归一化使得高层的外部使用者可以不加区分的处理所有接口兼容的对象集合 继承的两种用途 一:继承基类的方法,并且做出自己改变或者扩展(代码重用):实践中,继承的这种用途意义并不很大,甚至常常是有害的.因为它使得子类与基类出现强耦合. 二:声明某个子类兼容于某基类,定义一个接口类(模仿java的Interface),接口类中…
Python网络数据采集操作清单 BeautifulSoup.Selenium.Tesseract.CSV等 Python网络数据采集操作清单 BeautifulSoup.Selenium.Tesseract.CSV等 常用正则表达式清单 常用正则表达式符号 电子邮箱 找出所有以"/"开头的链接 所有以"http"或"www"开头且不包含当前URL的链接 查找 .get_text() .findAll(tag, attributes, recur…
一.操作系统概念 操作系统位于底层硬件与应用软件之间的一层.工作方式:向下管理硬件,向上提供接口. 操作系统进行进程切换:1.出现IO操作:2.固定时间. 固定时间很短,人感受不到.每一个应用层运行起来的程序都是进程. 二.进程与线程的概念 2.1 进程 程序仅仅只是一堆代码而已,而进程指的是程序的运行过程.需要强调的是:同一个程序执行两次,那也是两个进程. 进程:资源管理单位(容器). 线程:最小执行单位,管理线程的是进程. 进程定义: 进程就是一个程序在一个数据集上的一次动态执行过程.进程一…
一.shutil模块(了解):高级的文件.文件夹.压缩包处理模块. import shutil # shutil.copyfileobj(fsrc, fdst[, length]),将文件内容拷贝到另一个文件中 shutil.copyfileobj(open('old.xml', 'r'), open('new.xml', 'w')) # shutil.copyfile(src, dst),拷贝文件 shutil.copyfile('f1.log', 'f2.log') # 目标文件无需存在 #…
今日内容: 1.configparser模块的使用 2.subprocess模块的使用 3.表格处理模块 xlrd模块 xlwt模块 1.configparser模块 configparser模块是用来解析配置文件的 配置文件就是用来设置程序的 因为有些程序的的某些设置是不能写死的,例如密码登录次数超过某个值时进行锁死,此时的规定的登录次数不能写死 所以此时如果想要对锁死的次数进行设置就要将次数写到配置文件中,如果想要修改规定次数,只要修改配置文件中的值就可以,不用修改源代码 配置文件的格式:…
目录 一.进程与线程区别 1.1 什么是线程 1.2 什么是进程 1.3 进程与线程的区别 二.Python GIL全局解释器锁 三.线程 3.1 threading模块 3.2 Join & Daemon 3.3 线程锁(互斥锁Mutex) 3.4 RLock(递归锁) 3.5 Semaphore(信号量) 3.6 Events 3.7 Queue队列 3.8 生产者消费者模型 四.进程 4.1 Process 4.2 Lock 4.3 Semaphore 4.4 Event 4.5 Queu…
subprocess模块 可以通过python代码给操作系统终端发送命令,并可以得到返回结果. import subprocess str = input('>>>请输入命令') # 使用Popen方法,需要四个参数:输入的内容;shell;stdout和stderr的默认值都是subprocess.PIPE(子进程的管道值,最大64kb) sub_obj = subprocess.Popen(str, stdout=subprocess.PIPE, stderr=subprocess.…
一.多任务(多线程) 多线程特点:(1)线程的并发是利用cpu上下文的切换(是并发,不是并行)(2)多线程执行的顺序是无序的(3)多线程共享全局变量(4)线程是继承在进程里的,没有进程就没有线程(5)GIL全局解释器锁(6)只要在进行耗时的IO操作的时候,能释放GIL,所以只要在IO密集型的代码里,用多线程就很合适 # 无序的,并发的 import threading import time def test1(n): time.sleep(1) print('task', n) for i i…
本章内容: 创建类和对象 面向对象三大特性(封装.继承.多态) 类的成员(字段.方法.属性) 类成员的修饰符(公有.私有) 类的特殊成员 isinstance(obj, cls) & issubclass(sub, super) 异常处理 反射 单例模式 创建类和对象 面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对象” 来实现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用. 类就是一个模板,模板里可以包含多个函数,函数里实现一些功能 对象则是根据模板创建的实…