zoukankan      html  css  js  c++  java
  • 模块 configParser ,subprocess,

    configParser模块

    ConfigParser 是用来读取配置文件的包。配置文件的格式如下:中括号“[ ]”内包含的为section。section 下面为类似于key-value 的配置内容。

    软件的常见文档格式如下:

    [DEFAULT]
    ServerAliveInterval = 45
    Compression = yes
    CompressionLevel = 9
    ForwardX11 = yes
      
    [bitbucket.org]
    User = hg
      
    [topsecret.server.com]
    Port = 50022
    ForwardX11 = no

    用python生成一个这样的文档怎么做
    import configparser config = configparser.ConfigParser() config["DEFAULT"] = {'ServerAliveInterval': '45', 'Compression': 'yes', 'CompressionLevel': '9', 'ForwardX11':'yes' } config['bitbucket.org'] = {'User':'hg'} config['topsecret.server.com'] = {'Host Port':'50022','ForwardX11':'no'} with open('example.ini', 'w') as configfile: config.write(configfile)

     查找文件

    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的目的就是启动一个新的进程并且与之通信。

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

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


    命令带参数

    linux:

    import subprocess
    
    subprocess.Popen('ls -l',shell=True)

    控制子进程

    当我们想要更个性化我们的需求的时候,就要转向Popen类,该类生成的对象用来代表子进程。刚才我们使用到了一个wait方法

    此外,你还可以在父进程中对子进程进行其它操作:

    s.poll() # 检查子进程状态
    s.kill() # 终止子进程
    s.send_signal() # 向子进程发送信号
    s.terminate() # 终止子进程
    
    s.pid:子进程号

    子进程的文本流控制

    可以在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)
    ------------------------------------------------------------------------------------------
    
    
    
    

    shelve模块

     shelve模块比pickle模块简单,只有一个open函数,返回类似字典的对象,可读可写;key必须为字符串,而值可以是python所支持的数据类型

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import shelve
      
    f = shelve.open(r'shelve.txt')
      
    # f['stu1_info']={'name':'alex','age':'18'}
    # f['stu2_info']={'name':'alvin','age':'20'}
    # f['school_info']={'website':'oldboyedu.com','city':'beijing'}
    #
    #
    # f.close()
      
    print(f.get('stu_info')['age'])
  • 相关阅读:
    Silverlight中弹出网页
    Silverlight中嵌套html、swf、pdf
    silverlight 用户浏览器未安装SL插件问题
    silverlight视频、音频
    Silverlight形状、画笔、变换、图像处理、几何图形
    Silverlight动画学习笔记(三):缓动函数
    Silverlight动画的基本知识、关键帧动画
    Silverlight独立存储
    关于Silverlight调用天气预报接口问题
    c#获取今天星期几
  • 原文地址:https://www.cnblogs.com/gyh04541/p/7089726.html
Copyright © 2011-2022 走看看