1. 用途:是python用来打开本地文件的,他会在使用完毕后,自动关闭文件,相对open()省去了写close()的麻烦

2. 用法:

with open(file="你要打开的路径名(或保存内容的地址)",mode="r/w/a",encoding="utf-8") as f:data=f.read/write()print(data)

如果没有指定的路径,会自动新建文件,无需先去新建。

2.1 关于mode的三种常用模式:

r:只读 用read()w: 只写 用write()       // 会清除之前写的内容a: 追加内容,用write()    //会在已经写的内容基础上追加新的内容

全部模式

r:   以只读方式打开文件。文件的指针将会放在文件的开头。这是**默认模式**。
rb: 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+: 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+:以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w:  打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb: 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+:    打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+:以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a:  打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab: 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+:    打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

2.2 file对象的属性:

file.read([size])   将文件数据作为字符串返回,可选参数size控制读取的字节数
file.readlines([size])   返回文件中行内容的列表,size参数可选
file.write(str)   将字符串写入文件
file.writelines(strings)   将字符串序列写入文件
file.close()   关闭文件
file.closed 表示文件已经被关闭,否则为Falsefile.mode  Access文件打开时使用的访问模式
file.encoding   文件所使用的编码
file.name   文件名
file.newlines   未读取到行分隔符时为None,只有一种行分隔符时为一个字符串,当文件有多种类型的行结束符时,则为一个包含所有当前所遇到的行结束的列表
file.softspace  为0表示在输出一数据后,要加上一个空格符,1表示不加。这个属性一般程序员用不着,由程序内部使用

3. 案例

./ 表示在当前文件夹下,如果没有该文件就自动创建

    with open('./sogou.html', 'w', encoding='UTF-8') as fp:page_txt=fp.write()print('爬取数据结束!!!')

4. 可能会遇到到问题

4.1 把运行结果写入到外部到文件中,只显示了一行:可能原因是在with open中mode模式有误,应该是“a”,而不是“w”

4.2 在写入文件时,有乱码:在with open中到“file=“后写上一个r,之后再引入路径。

5.需要注意的点

5.1 要读取非UTF-8编码的文本文件,需要给open()函数传入encoding参数

5.2 读取时调用read()将一次性读取文件的全部内容,如果文件有10G,内存就爆了,保险起见可以反复调用read(size)方法,每次最多读取size个字节的内容。

5.3 调用readline()可以每次读取一行内容,调用 readlines()一次读取所有内容并按行返回list。

5.4 根据需要调用:如果文件很小,read()一次性读取最方便;如果不能确定文件大小,反复调用read(size)比较保险;如果是配置文件,调用readlines()更方便。

Python——with open()的用法相关推荐

  1. 详细记录python的range()函数用法

    详细记录python的range()函数用法 使用python的人都知道range()函数很方便,今天再用到他的时候发现了很多以前看到过但是忘记的细节.这里记录一下range(),复习下list的sl ...

  2. python Pool常用函数用法总结

    在本篇内容里小编给大家整理的是一篇关于python Pool常用函数用法总结内容,有需要的朋友们可以学习下. 1.说明 apply_async(func[,args[,kwds]):使用非堵塞调用fu ...

  3. python HDF5 h5py 的用法

    python HDF5 h5py 的用法 核心概念 HDF5文件是包含两种对象的容器:数据集,它们是类似数组的数据集合:组,是类似文件夹的容器,用于存放数据集和其他组.使用h5py时要记住的最基本的事 ...

  4. 五分钟理解yield在python中的简单用法,让你不再迷惑

    很多同学无论是在学习python还是使用python的过程中,都会遇到yield关键字,这个让人头大的问题,今天,就给大家分享一下我自学yield的心路历程 基本概念: (1)在 Python 中,使 ...

  5. python正则表达式re.sub用法

    python正则表达式re.sub用法 https://cloud.tencent.com/developer/article/1382055 python正则表达式re.sub用法 全面的 http ...

  6. Python 异常处理--raise函数用法

    Python 异常处理--raise函数用法 参考文章: (1)Python 异常处理--raise函数用法 (2)https://www.cnblogs.com/darkgui34/p/405074 ...

  7. format函数python的顺序_[转载] Python中format函数用法

    Python中format函数用法 format优点 format是python2.6新增的格式化字符串的方法,相对于老版的%格式方法,它有很多优点. 1.不需要理会数据类型的问题,在%方法中%s只能 ...

  8. python ord()与chr()用法以及区别

    python ord()与chr()用法以及区别 原文:http://blog.csdn.net/yulock/article/details/52904035 ord()函数主要用来返回对应字符的a ...

  9. java和python可以在一个项目中同时使用么-java调用python的几种用法(看这篇就够了)...

    java调用python的几种用法如下: 在java类中直接执行python语句 在java类中直接调用本地python脚本 使用Runtime.getRuntime()执行python脚本文件(推荐 ...

  10. python代码大全表解释-python中的字典用法大全的代码

    如下代码是关于python中的字典用法大全的代码. #!/usr/bin/env python # # [SNIPPET_NAME: Dictionaries 101] # [SNIPPET_CATE ...

最新文章

  1. TableStore: 海量结构化数据分层存储方案
  2. 扑克牌排序_巧用扑克牌搞定孩子的数学思维启蒙,聪明的妈妈都在玩这样的游戏...
  3. CMFCColorDialog弹不出来或者CMFCColorButton的Other按钮无效
  4. mysql+根密码是什么意思,重设MySQL根密码
  5. Spark 常见问题小结
  6. 渗透测试入门8之端口渗透
  7. 关于单页面应用一些随想
  8. Ionic在Android上部署app步骤
  9. 我的第一个Imx6ULL应用《百度图像识别》
  10. 《奥黛丽·赫本》一辈子活在优雅里
  11. 利用虚拟机virtualbox配置智汀家庭云,让米家设备连接Homekit
  12. ccf-20161203--权限查询
  13. web.config与mysql的连接 appsettings_Web.config配置文件中定义了如下数据库连接串
  14. EasyRecovery免费电脑硬盘数据恢复软件使用教程
  15. 中国制造构建全球产业链,是关于价值链的创新
  16. 提取小米手机的备份数据
  17. Thinkpad W500 电源键无效解决方法
  18. html5 粒子动画效果制作,8款惊艳的HTML5粒子动画特效
  19. 机器学习面试常见算法
  20. 移动电影院发布2.0版本,多功能多种体验

热门文章

  1. MySql__为用户赋于主从同步的权限
  2. 【STM32CubeMX】STM32H7-RTOS-SPI-W5500
  3. 没时间做副项目?这个程序员是如何做到的
  4. SSE指令集学习之旅(二)
  5. SilverlightWPF依赖属性DependencyProperty讲解
  6. ClickOnce部署DotNETFrameWork流程及注意事项
  7. 【Comsol学习】二维稳态热传导问题
  8. C语言格式化输出总结:%d,%c,%s,%f, %lf,%m.nd,%m.nf,%m.ns 以及sprintf函数
  9. 联想小新Air14 2023和2022区别对比评测
  10. crypt密码加密函数的基本用法