总结Python中的open()方法

message= {'企业即时通信': 'aaa', '企业名称': 'bbb'}

with open("..\\r.txt", "a", encoding="utf-8") as f:

f.write(json.dumps(message, ensure_ascii=False)+'\n')
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编码。

Python中的open()方法总结的更多相关文章

  1. Python中的__new__()方法与实例化

    @Python中的__new__()方法与实例化   __new__()是在新式类中新出现的方法,它作用在构造方法建造实例之前,可以这么理解,在Python 中 存在于类里面的构造方法__init__ ...

  2. python中的replace()方法的使用

    python中的replace()方法的使用 需求是这样的:需要将字符串的某些字符替换成其他字符 str.replace(old,new,max) 第一个参数是要进行更换的旧字符,第二个参数是新的子串 ...

  3. Python中的字符串方法

    Python中的字符串方法 字符串类即str提供了许多有用的方法来操纵字符串.具体来说,我们将讨论如下的方法. 搜索字符串内的子字符串. 测试字符串. 格式字符串. 转换字符串. 回顾前面的章节,方法 ...

  4. python中的sort方法

    Python中的sort()方法用于数组排序,本文以实例形式对此加以详细说明: 一.基本形式 列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不 ...

  5. python中的sort方法使用详解

    Python中的sort()方法用于数组排序,本文以实例形式对此加以详细说明: 一.基本形式 列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不 ...

  6. Python中格式化format()方法详解

    Python中格式化format()方法详解 Python中格式化输出字符串使用format()函数, 字符串即类, 可以使用方法; Python是完全面向对象的语言, 任何东西都是对象; 字符串的参 ...

  7. 关于python中的特殊方法

    研究了几个小时,大概对python中的特殊方法一知半解,现在写写自己的理解,以及记录一些找到的资源.待自己有比较深入理解的时候,再来更新 https://docs.python.org/3/refer ...

  8. Python中使用item()方法遍历字典的例子

    Python中使用item()方法遍历字典的例子 这篇文章主要介绍了Python中使用item()方法遍历字典的例子,for...in这种是Python中最常用的遍历字典的方法了,需要的朋友可以参考下 ...

  9. Python中的__new__()方法的使用

    __new__() 函数只能用于从object继承的新式类. 先看下object类中对__new__()方法的定义: class object:   @staticmethod # known cas ...

随机推荐

  1. linux scull 中的缺陷

    让我们快速看一段 scull 内存管理代码. 在写逻辑的深处, scull 必须决定它请求的内 存是否已经分配. 处理这个任务的代码是: if (!dptr->data[s_pos]) { dp ...

  2. 前端导出&配置问题

    <button class="search" onclick="method5('dataTable');">导出</button> 在 ...

  3. WPF 分页控件Pager

    本文为伪原创原文为 NET未来之路的https://www.cnblogs.com/lonelyxmas/p/10641255.html 原文中,页码数量会不断增加,会将下一页的按钮顶出去 修改了一下 ...

  4. Github Pages 无法调用 node_modules 文件夹的解决方案

    今天写一个demo,用npm安装的前端库,然后想在github的pages上展示出来 发布到github后,发现node_modules文件夹下的js无法调用 google解决方案:新增一个名字为.n ...

  5. CCNA 学习记录(三)通过仿真理解ARP协议

    拓扑图 配置 路由器R2: GigabitEthernet 0/0/0 IP Address: 192.168.1.1 Subnet Mask: 255.255.255.0 Serial 0/1/0 ...

  6. Java正则表达式学习与记录

    转载自:http://www.runoob.com/java/java-regular-expressions.html 正则表达式定义了字符串的模式,用于搜索.编辑或处理文本. 1.正则表达式中字符 ...

  7. 洛谷$P4322\ [JSOI2016]$最佳团体 二分+$dp$

    正解:二分+$dp$ 解题报告: 传送门$QwQ$ 这题长得好套路嗷,,,就一看就看出来是个$01$分数规划+树形$dp$嘛$QwQ$. 考虑现在二分的值为$mid$,若$mid\leq as$,则有 ...

  8. $vjudge-$基本算法专题题解

    考完期末又双叒回来刷普及题辣$kk$ 然后放个链接趴还是$QwQ$ [X]$A$ 因为是嘤文($bushi$所以放个题意趴$QwQ$ 就汉诺塔问题,只是说有四个塔$A,B,C,D$,要求输出有1-12 ...

  9. Codeforces Round #612 (Div. 2) 前四题题解

    这场比赛的出题人挺有意思,全部magic成了青色. 还有题目中的图片特别有趣. 晚上没打,开virtual contest打的,就会前三道,我太菜了. 最后看着题解补了第四道. 比赛传送门 A. An ...

  10. 1052 卖个萌 (20 分)C语言

    萌萌哒表情符号通常由"手"."眼"."口"三个主要部分组成.简单起见,我们假设一个表情符号是按下列格式输出的: [左手]([左眼][口][右 ...