常用模块-----configparser & subprocess

configparser 模块

功能:操作模块类的文件,configparser类型文件的操作类似于字典,大多数用法和字典相同。

新建文件:

import configparser
cfg=configparser.ConfigParser()
cfg[‘DEFAULT‘]={‘ServerAliveInterval‘: ‘45‘,
                      ‘Compression‘: ‘yes‘,
                     ‘CompressionLevel‘: ‘9‘,
                     ‘ForwardX11‘:‘yes‘
                     }
cfg[‘bitbucket.org‘]={‘User‘:‘hg‘}
cfg[‘topsecret.server.com‘]={‘host port‘:‘50022‘,‘Forwardx11‘:‘no‘}
with open(‘cfg.int‘,‘w‘) as f:
    cfg.write(f)
#DEFAULT 关键字,是默认参数,将DEFAULT 里的内容(value)匹配给每个自定义模块,比如:bitbucket.org

cfg.int 文件内容如下:

[DEFAULT]serveraliveinterval = 45compression = yescompressionlevel = 9forwardx11 = yes

[bitbucket.org]user = hg

[topsecret.server.com]host port = 50022forwardx11 = no

操作文件内容
import configparser

config = configparser.ConfigParser()

#---------------------------查找文件内容,基于字典的形式

print(config.sections())        #  []

config.read(‘example.ini‘)

print(config.sections())        #   [‘bitbucket.org‘, ‘topsecret.server.com‘]

print(‘bytebong.com‘ in config) # False
print(‘bitbucket.org‘ in config) # True

print(config[‘bitbucket.org‘]["user"])  # hg

print(config[‘DEFAULT‘][‘Compression‘]) #yes

print(config[‘topsecret.server.com‘][‘ForwardX11‘])  #no

print(config[‘bitbucket.org‘])          #<Section: bitbucket.org>

for key in config[‘bitbucket.org‘]:     # 注意,有default会默认default的键
    print(key)

print(config.options(‘bitbucket.org‘))  # 同for循环,找到‘bitbucket.org‘下所有键

print(config.items(‘bitbucket.org‘))    #找到‘bitbucket.org‘下所有键值对

print(config.get(‘bitbucket.org‘,‘compression‘)) # yes       get方法取深层嵌套的值

增删改操作

import configparser

config = configparser.ConfigParser()

config.read(‘example.ini‘)

config.add_section(‘yuan‘)

config.remove_section(‘bitbucket.org‘)
config.remove_option(‘topsecret.server.com‘,"forwardx11")

config.set(‘topsecret.server.com‘,‘k1‘,‘11111‘)
config.set(‘yuan‘,‘k2‘,‘22222‘)

config.write(open(‘new2.ini‘, "w")) 

subprocess模块

subprocess模块允许一个进程创建一个新的子进程,通过管道连接到子进程的stdin/stdout/stderr,获取子进程的返回值等操作。

import subprocess

#  创建一个新的进程,与主进程不同步  if in win: s=subprocess.Popen(‘dir‘,shell=True)
s=subprocess.Popen(‘ls‘)
s.wait()                  # s是Popen的一个实例对象

print(‘ending...‘)     

子进程文本控制流

可以在Popen()建立子进程的时候改变标准输入、标准输出和标准错误,并可以利用subprocess.PIPE将多个子进程的输入和输出连接在一起,构成管道(pipe):

import subprocess

# s1 = subprocess.Popen(["ls","-l"], stdout=subprocess.PIPE)
# print(s1.stdout.read())

#s2.communicate()

s1 = subprocess.Popen(["cat","/etc/passwd"], stdout=subprocess.PIPE)
s2 = subprocess.Popen(["grep","0:0"],stdin=s1.stdout, stdout=subprocess.PIPE)
out = s2.communicate()

print(out)
				
时间: 2024-10-19 23:47:01

常用模块-----configparser & subprocess的相关文章

python常用模块之subprocess

python2有个模块commands,执行命令的模块,在python3中已经废弃,使用subprocess模块来替代commands. 简单介绍一下:commands模块 常用的三个方法: 1,commands.getstatus(file) #ls -ld file的效果 import commands result = commands.getstatus('/tmp') print(result) 执行结果:[email protected] 1 root wheel 11 Jan 19

学习日记0813常用模块configparser,shelve,hashlib,xml

configparser模块 什么是configparser模块 用于解析配置文件 后缀为 ini或者cfg 怎么用configparser模块 查看配置文件中的内容 1 import configparser 2 cfg = configparser.ConferParser() 3 cfg.read('文件路径',encoding='utf-8') 4 print(cfg.sections()) 5 print(cfg.options('section名')) 修改配置文件中的内容 impo

18-5 常用模块(subprocess)

当我们需要调用系统的命令的时候,最先考虑的os模块.用os.system()和os.popen()来进行操作.但是这两个命令过于简单,不能完成一些复杂的操作,如给运行的命令提供输入或者读取命令的输出,判断该命令的运行状态,管理多个命令的并行等等.这时subprocess中的Popen命令就能有效的完成我们需要的操作. subprocess模块允许一个进程创建一个新的子进程,通过管道连接到子进程的stdin/stdout/stderr,获取子进程的返回值等操作. 这个模块只有一个类:Popen 创

Python常用模块之五 subprocess

Python引入subprocess模块来管理子进程,以取代一些旧模块的方法:如 os.system.os.spawn*.os.popen*.popen2.*.commands.*不但可以调用外部的命令作为子进程,而且可以连接到子进程的input/output/error管道,获取相关的返回信息. subprocess模块中只定义了一个类: Popen.可以使用Popen来创建进程,并与进程进行复杂的交互. subprocess.call()父进程等待子进程完成返回退出信息(returncode

python_day06 常用模块xml/configparser/hashlib/subprocess 面向对象程序设计

常用模块shutilxmlconfigparserhashlibsuprocess面向对象的程序设计 常用模块 xml模块 1 <?xml version="1.0"?> 2 <data> 3 <country name="Liechtenstein"> 4 <rank updated="yes">2</rank> 5 <year>2008</year> 6 &l

python 常用模块 time random os模块 sys模块 json &amp; pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则

python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib  subprocess logging re正则 转自老男孩老师Yuan:http://www.cnblogs.com/yuanchenqi/articles/5732581.html 模块&包(* * * * *) 模块(modue)的概念: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,

os模块、os.path模块、shutil模块、configparser模块、subprocess模块

一.os模块 os指的是错作系统 该模块主要用于处理与操作系统相关的操作,常用的是文件操作(读.写.删.复制.重命名). os.getcwd()  获取当前文件所在的文件夹路径 os.chdir()  修改当前工作目录 os.makedirs()  创建多级目录(不存在时,则创建) os.mkdir()  创建单级目录 os.rmdir()  删除文件夹(文件夹为空,则删除) os.listdir()  列出指定目录下的所有文件及子目录(存在一个列表中) os.stat()  获取文件信息 os

python学习笔记-Day7(configparser模块、shutil、压缩与解压模块、subprocess)

configparser模块 # configparser用于处理特定格式的文件,其本质上是利用open来操作文件 # 下边我们就创建这种特定格式配置文件,来操作以下这里模块方法 --------------test.conf---------------- [section1] # configparser 会认定以中括号括住的为一个节点(node) k1 = 111 # 节点下,每一行配置文件为键值对存在(也可以写成 k2:123) k2 = v2 k3 = 123 k4 = True k1

常用模块二(configparser

阅读目录 常用模块二 hashlib模块 configparse模块 logging模块 常用模块二 返回顶部 hashlib模块 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示). 摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest,目的是为了发现原始数据是否被人篡改过. 摘要算法之所以能指出数