一、操作文件的函数/方法
在Python/ target=_blank class=infotextkey>Python中要操作文件需要记住1个函数和3个方法:
序号
函数/方法
说明
01
open
打开文件,并且返回文件操作对象
02
read
将文件内容读取到内存
03
write
将制定内容写入文件
04
close
关闭文件
二、read方法——读取文件2.1》读取文件步骤
- open函数第一个参数是文件名称(注意:文件名是区分大小写的),包括路径;
- 如果文件存在,返回文件操作对象(利用这个对象操作read方法)
- 如果文件不存在,会抛出异常
2、read方法可以一次性读入并返回文件的所有内容
3、close方法负责关闭文件(利用这个对象操作close方法)
- 如果忘记关闭文件会造成系统资源消耗,而且会影响到后续对文件的访问
准备工作:准备一个文件名叫Hello的text文件,在里面面随便拿写点内容,后续好编写代码运行 。
建立文件步骤:鼠标右击左侧的pythonProject——》New——》点击File——》写上文件名——》确定即可——》双击文件打开文件编写内容(我的内容是:Hello World!我是python自学网,欢迎你~) 。如下图:
文章插图
文章插图
1)读取python文件内容时出现以下错误:
UnicodeDecodeError: 'gbk' codec can't decode byte 0x81 in position 16: illegal multibyte sequence
代码编写:
# 1. 打开文件 file = open("HELLO") # 2. 读取 text = file.read() print(text) # 3. 关闭 file.close()
执行结果:
文章插图
原因:
python中默认的编码方式为gbk,而windows的默认编码方式为UTF-8,所以设置python编码方式为UTF-8就OK了~
修改代码:加上encoding="UTF_8"
# 1. 打开文件 file = open("HELLO", encoding="UTF-8") # 2. 读取 text = file.read() print(text) # 3. 关闭 file.close()
修改后执行结果:
文章插图
提示:
- 在开发中,通常会先编写打开和关闭的代码,再编写中间针对的读和写操作~
- 如果不发生编码错误,第一个编写的代码是可以正常运行的,就不需要加上encoding=”UTF-8”
- 文件指针标记 从哪个位置开始读取数据
- 第一次打开文件时,通常文件指针会指向文件的开始位置
- 当执行了read方法后,文件指针会移动到读取内容的末尾默认情况下会移动到文件末尾
提问:
如果执行了一次read方法读取了所有内容,那么在此调用read方法还能获得到内容吗?
答案:
不能 。因为第一次读取后文件指针移动到了文件的末尾,再次调用不会读取到任何的内容
读取文件后文件指针会改变:代码验证:
# 1. 打开文件 file = open("HELLO", encoding="UTF-8") # 2. 读取 text = file.read() print(text) print("+" * 30) text = file.read() print(text) # 3. 关闭 file.close()
执行结果:在分隔线下方并没有打印出文件内容
文章插图
利用内容长度再来验证一下:len(text)
文章插图
总结: read方法执行后,会把文件指针移动到文件的末尾,移动到末尾后再调用read方法就获取不到内容了 。
三、open函数——打开文件方式
open函数默认以只读方式打开文件,并且返回文件对象
3.1》语法格式如下
file = open("文件名", "访问方式")
3.2》第二个参数是打开的模式mode
访问方式
说明
r
以只读方式打开文件 。文件的指针将会放在文件的开头,这是默认模式 。
如果文件不存在,会抛出异常
w
以只写方式打开文件 。
推荐阅读
- 2022新版Scrapy打造搜索引擎 畅销4年的Python分布式爬虫
- 别在Python中使用“+”来连接字符串了,还有更好用的方法
- Windows操作系统如何快速激活?4行代码轻松搞定
- 打开pdg文件的操作技巧 pdg格式用什么打开?
- |操作失误,男子钓鱼不小心被鱼钩钩中头,网友调侃:钓鱼要戴头盔
- 编写检测本机ipv6地址并发邮件的python程序
- Julia 和 Python,哪一个更快?
- wps取消重得值的颜色的操作内容
- Google Chrome 谷歌浏览器截图整个网页的的操作流程
- 使用 python 绘制万花尺