• 三狮军团首秀 只有两千多球迷观战 2019-05-19
  • 人民网2017呼和浩特徒步迎新活动--内蒙古频道--人民网 2019-05-19
  • 【品牌资讯】环球网斩获“全国行业新闻网站传播力2017年6月榜”多项冠军 2019-05-15
  • 深化对经济工作主线的认识 从供需关系看供给侧结构性改革 2019-05-15
  • 格拉斯哥艺术学院起火 4年前曾遭火灾仍在整修 2019-05-14
  • 回复@地瓜干17世:猪临死才会嚎叫呢~ 2019-05-14
  • 婺源古村溪中发现鹰嘴龟 2019-05-08
  • 编辑评测:高夫净源控油平衡露 极速补水长效控油 2019-05-08
  • 四部门发文规范特色小镇建设防止“新瓶装旧酒” 2019-05-02
  • 【地球的盛会文明的聚会艺术的盛宴四海一家足球为人类和平幸福而荣耀!!!普京是当今人类世界最优秀的一代伟人俄罗斯赢啦!!!】 2019-04-29
  • 学习新思想,千万师生同上一堂课 2019-04-28
  • 你这种个体户都干不了的老蚕也配谈计划?真是笑死人不偿命哦? 2019-04-23
  • 感人!的哥带着患病父亲出车 孝心感动乘客 2019-04-23
  • 图解:习近平在纪念马克思诞辰200周年大会上讲话的16个金句 2019-04-16
  • 感触名家笔下的端午文化 吃香粽原来可以这样"文艺" 2019-04-16
  • 体育彩票竞猜:Python I/O与进程的详细讲解

    山西体彩11选5直选遗漏 www.caxru.com  更新时间:2019年03月08日 11:58:36   作者:沙沙罗曼   我要评论

    今天小编就为大家分享一篇关于Python I/O与进程的详细讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    I/O

    with语句

    with context_expression [as target(s)]:
      with-body

    context_expression返回值遵从上下文管理协议,包含__enter__()__exit__()方法,as语句的target(s)得到的是__enter__()返回值,执行with-body后会调用上下文管理器的__exit__()方法,使用with语句,可以减轻某些代码编写负担,比如文件读写。

    读文件

    try:
      f = open('/path/to/file', 'r', encoding='utf8', errors='ignore')
      print(f.read(1024))
    finally:
      if f:
        f.close()
    # 使用with语句
    with open('/path/to/file', 'r') as f:
      print(f.read(1024))

    open()方法打开文件模式,默认以utf8格式读取,添加后缀'b'(rb、wb)表示以二进制方式读取,mode有以下几种:

    StringIO和BytesIO

    StringIO将string按照文件的方式读取和写入,BytesIO将bytes按照文件的的方式读取和写入。

    OS

    通过OS???,与操作系统信息交互,如创建、移动、列出文件等等。

    序列化

    通过内置??閜ickle,实现序列化与反序列化,使用json??橥瓿蒍SON数据的序列化和反序列化。

    import pickle
    d = dict(name = 'sha', age = 26)
    # 将序列化内容写入文件
    with open('dump', 'wb') as f:
      pickle.dump(d, f)
    # 从文件中读取序列化内容
    with open('dump', 'rb') as f:
      d = pickle.load(f)
    print(d) # {'name': 'sha', 'age': 26}

    进程与线程

    进程

    Python调用一次进程fork()会有两次返回,子进程永远返回0,父进程中返回子进程ID。os.fork()不支持windows,multiprocessing??槭强缙教ò姹镜亩嘟棠??。

    import os
    pid = os.fork() # pid后的代码会在两个进程中分别执行,通过pid值不同判断父子
    if pid == 0:
      print('exec in child process')
    else:
      print('exec in parent process')
    # exec in parent process
    # exec in child process

    进程池

    from multiprocessing import Pool
    def say(x):
      print(x)
    if __name__ == '__main__':
      p = Pool(4)
      for i in range(5):
        p.apply_async(say, args=(i,))
      p.close()
      p.join()

    子进程

    import subprocess
    print('$ nslookup amsimple.com')
    r = subprocess.call(['nslookup', 'amsimple.com'])
    print('Exit code:', r)

    进程间通信

    进程间通信通过Queue与Pipes实现,父进程创建Queue传递给子进程。

    线程

    Python提供两个??開thread与threading,前者是低级??楹笳呤歉呒赌??,对_thread进行了封装。

    启动一个线程就是把一个函数传入并创建Thread实例,然后调用start()开始执行:

    import threading
    # 新线程执行的代码:
    def say():
      print('%s say hello' % threading.current_thread().name)
    t = threading.Thread(target=say, name = 'SayThread')
    t.start()
    t.join()

    threading.current_thread()返回但前运行线程的实例,主线程名MainTreed,子线程名在创建时指定。

    通过threading.Lock()获取锁,某些需要线程安全的操作,先通过acquire()获取锁,通过release()释放锁。

    Python中的线程因为GIL锁,无法真正利用多核。

    通过ThreadLocal实现线程级的全局变量,不同线程间相互不影响。

    import threading
    th_local = threading.local() # th_local会跟线程绑定,不同线程看到的是不同对象

    分布式进程

    managers??橐揽客缤ㄐ?,可以把多进程分布到多台机器上。

    正则

    通过'r'前缀定义正则字符串,通过re??樽稣蚱ヅ涞炔僮?。

    import re
    s = r'^[a-zA-Z0-9_-][email protected][a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$'
    re.match(s, '[email protected]')

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

    相关文章

    最新评论

  • 三狮军团首秀 只有两千多球迷观战 2019-05-19
  • 人民网2017呼和浩特徒步迎新活动--内蒙古频道--人民网 2019-05-19
  • 【品牌资讯】环球网斩获“全国行业新闻网站传播力2017年6月榜”多项冠军 2019-05-15
  • 深化对经济工作主线的认识 从供需关系看供给侧结构性改革 2019-05-15
  • 格拉斯哥艺术学院起火 4年前曾遭火灾仍在整修 2019-05-14
  • 回复@地瓜干17世:猪临死才会嚎叫呢~ 2019-05-14
  • 婺源古村溪中发现鹰嘴龟 2019-05-08
  • 编辑评测:高夫净源控油平衡露 极速补水长效控油 2019-05-08
  • 四部门发文规范特色小镇建设防止“新瓶装旧酒” 2019-05-02
  • 【地球的盛会文明的聚会艺术的盛宴四海一家足球为人类和平幸福而荣耀!!!普京是当今人类世界最优秀的一代伟人俄罗斯赢啦!!!】 2019-04-29
  • 学习新思想,千万师生同上一堂课 2019-04-28
  • 你这种个体户都干不了的老蚕也配谈计划?真是笑死人不偿命哦? 2019-04-23
  • 感人!的哥带着患病父亲出车 孝心感动乘客 2019-04-23
  • 图解:习近平在纪念马克思诞辰200周年大会上讲话的16个金句 2019-04-16
  • 感触名家笔下的端午文化 吃香粽原来可以这样"文艺" 2019-04-16
  • 双色球走势图带连线图 2元彩票网走势图大全 在澳门赌场最常见玩法 足彩论坛 海南七星彩综合走势图 网上官方的彩票销售点还有吗 七星彩论坛- 808彩票网 破解重庆时时彩软件器 老时时彩 三分pk10手机计划软件 彩客网双色球专家预测 福彩欢乐生肖 排列三走势图500图表网 双色球在线缩水 彩吧p3开机号试机号查询 本港台现场报码直播