zoukankan      html  css  js  c++  java
  • Python中的open()方法总结

    总结Pythonopen()方法

    message= {'企业即时通信': 'aaa', '企业名称': 'bbb'}
    
    with open("..\r.txt", "a", encoding="utf-8") as f:
    
    f.write(json.dumps(message, ensure_ascii=False)+'
    ')
    f.close()

    opne()第一个参数是路径+文件名,第二个参数是mode打开模式,也就是说你要只读,还是只写,还是读写,第三个参数是编码格式。

    Mode打开模式值:

    Mode

    描述

    r

    只读,待打开文件必须存在

    w

    只写,如果待打开文件已存在,会先清空,不存在则创建

    a

    只写,如果文件已存在,不会清空,接着往后追加

    r+

    读写,文件必须存在

    w+

    读写,如果待打开文件已存在,会先清空,不存在则创建

    a+

    读写,如果文件已存在,不会清空,接着往后追加

    如果想写入的是图片或者视频音频等,那么你需要用二进制形式写入,也就是在mode后面加一个b,比如下面这段就是将photo这张图写入a.png

    import requests
    
    photo = requests.get("https://mail.263.net/custom_login/images/domain_logo.png")
    
    with open("..\a.png", "wb") as f:
    
    f.write(photo.content)        # photo.content是photo这张图的二进制写法
    f.close()
    with open("..\a.png","r+b") as ff:
    
        pngdata = ff.read()
    
    print(pngdata)    #打印出来的和photo.content内容一样

    注意为什么我要用with open as这种方式打开文件:

    因为如果不使用这种方式,使用最简单的 f = open(“a.png”),必须记得写f.close().而且如果a.png没有找到,会报IOError,这个时候f.close()调用不到,如果无论有没有打开文件都执行关闭文件,就要手动加上try finally…

    With open as就不会这么麻烦,会自动帮我们调用f.close()所以代码可以不必f.close()

    事例中的json.dumps(message, ensure_ascii=False)这句话,因为我的message是一个字典,如果message写入文件,需要转为字符串,所以使用json.dumps()方法如果想要将dict类型写入json文件也必须用这个方法转换一下,ensure_ascii=False这个参数是为了写入汉字的时候就是写入汉字,而不是ucs2编码

  • 相关阅读:
    【转载】Java for循环
    JAVA如何判断两个字符串是否相等
    JQuery DataTable的配置项及事件
    JAVA中对list map根据map某个key值进行排序
    JAVA补0--->String.format()的使用
    【转载】Java DecimalFormat 用法
    Java集合类
    jQuery中ajax的4种常用请求方式
    POI之下载模板(或各种文件)
    【转载】java 获取路径的各种方法
  • 原文地址:https://www.cnblogs.com/sy_test/p/12160301.html
Copyright © 2011-2022 走看看