21-configparsersubprocess模块

Posted zhubincheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了21-configparsersubprocess模块相关的知识,希望对你有一定的参考价值。

一、configparser模块

1.1 configparser用法

读取

import configparser

config=configparser.ConfigParser()
config.read(test.ini)             # ini 格式可区分语法,read什么格式都可以,重要的是里面的数据

# 1、获取sections
print(config.sections())

# 2、获取某一section下的所有options
print(config.options(section1))

# 3、获取items
print(config.items(section1))

# 4、获取options对应的值
res=config.get(section1,user)
print(res,type(res))

res=config.getint(section1,age)
print(res,type(res))


res=config.getboolean(section1,is_admin)
print(res,type(res))


res=config.getfloat(section1,salary)
print(res,type(res))

改写

import configparser

config=configparser.ConfigParser()
config.read(a.cfg,encoding=utf-8)


#删除整个标题section2
config.remove_section(section2)

#删除标题section1下的某个k1和k2
config.remove_option(section1,k1)
config.remove_option(section1,k2)

#判断是否存在某个标题
print(config.has_section(section1))

#判断标题section1下是否有user
print(config.has_option(section1,‘user‘))


#添加一个标题
config.add_section(egon)

#在标题egon下添加name=egon,age=18的配置
config.set(egon,name,egon)
config.set(egon,age,18) #报错,必须是字符串


#最后将修改的内容写入文件,完成最终的修改
config.write(open(a.cfg,w))

1.2 configparser读取的文件语法

# 注释1
; 注释2

[section1]     # sections 写在[]中
k1 = v1       # 存储格式为,option对应值,使用k = v 或 k : v 
k2:v2
user=egon
age=18
is_admin=true
salary=31

[section2]
k1 = v1

 

二、subprocess 模块

可运行系统指令,并将正确或错误结果分别存入不同的管道。

且subprocess使用系统默认编码类型,但得到的结果为bytes类型,可进行转换

import  subprocess

‘‘‘
sh-3.2# ls /Users/egon/Desktop |grep txt$
mysql.txt
tt.txt
事物.txt
‘‘‘

res1=subprocess.Popen(ls /Users/jieli/Desktop,shell=True,stdout=subprocess.PIPE)
res=subprocess.Popen(grep txt$,shell=True,stdin=res1.stdout,
                 stdout=subprocess.PIPE)

print(res.stdout.read().decode(utf-8))


#等同于上面,但是上面的优势在于,一个数据流可以和另外一个数据流交互,可以通过爬虫得到结果然后交给grep
res1=subprocess.Popen(ls /Users/jieli/Desktop |grep txt$,shell=True,stdout=subprocess.PIPE)
print(res1.stdout.read().decode(utf-8))


#windows下:
# dir | findstr ‘test*‘
# dir | findstr ‘txt$‘
import subprocess
res1=subprocess.Popen(rdir C:UsersAdministratorPycharmProjects	est函数备课,shell=True,stdout=subprocess.PIPE)
res=subprocess.Popen(findstr test*,shell=True,stdin=res1.stdout,
                 stdout=subprocess.PIPE)

print(res.stdout.read().decode(gbk)) #subprocess使用当前系统默认编码,得到结果为bytes类型,在windows下需要用gbk解码

 

以上是关于21-configparsersubprocess模块的主要内容,如果未能解决你的问题,请参考以下文章