Python文件操作方法/函数使用【详细】
一、操作文件的函数/方法
在python中要操作文件需要记住1个函数和3个方法:
二、read方法——读取文件
2.1》读取文件步骤
1、open函数第一个参数是文件名称(注意:文件名是区分大小写的)内存不能为read修复 ,包括路径;
如果文件存在内存不能为read修复 ,返回文件操作对象(利用这个对象操作read方法)
如果文件不存在内存不能为read修复 ,会抛出异常
2、read方法可以一次性读入并返回文件的所有内容
3、close方法负责关闭文件(利用这个对象操作close方法)
如果忘记关闭文件会造成系统资源消耗内存不能为read修复 ,而且会影响到后续对文件的访问
2.2》代码示例以及可能遇到的打开文件编码错误
准备工作:准备一个文件名叫Hello的text文件,在里面面随便拿写点内容,后续好编写代码运行内存不能为read修复 。
建立文件步骤:鼠标右击左侧的pythonProject——》New——》点击File——》写上文件名——》确定即可——》双击文件打开文件编写内容(我的内容是:Hello World!我是python自学网,欢迎你~)内存不能为read修复 。如下图:
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内存不能为read修复 了~
修改代码:加上encoding="UTF_8"
# 1. 打开文件
file = open("HELLO", encoding="UTF-8")
# 2. 读取
text = file.read()
print(text)
# 3. 关闭
file.close()
修改后执行结果:
提示:
在开发中内存不能为read修复 ,通常会先编写打开和关闭的代码,再编写中间针对的读和写操作~
如果不发生编码错误内存不能为read修复 ,第一个编写的代码是可以正常运行的,就不需要加上encoding=”UTF-8”
2.3》》 文件指针
文件指针标记 从哪个位置开始读取数据
第一次打开文件时内存不能为read修复 ,通常文件指针会指向文件的开始位置
当执行了read方法后内存不能为read修复 ,文件指针会移动到读取内容的末尾
默认情况下会移动到文件末尾
提问:如果执行了一次read方法读取了所有内容内存不能为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方法就获取不到内容了内存不能为read修复 。
三、open函数——打开文件方式
open函数默认以只读方式打开文件内存不能为read修复 ,并且返回文件对象
3.1》语法格式如下
file = open("文件名", "访问方式")
3.2》第二个参数是打开的模式mode
代码示范:
1、w = write 写
# 1. 打开文件
file = open("HELLO", "w", encoding="UTF-8")
# 2. 写入
text = file.write("Python自学网")
print(text)
# 3. 关闭
file.close()
执行结果:打印写入的内容返回的是长度内存不能为read修复 ,另外文件内容被替换了
2、a = append内存不能为read修复 ,追加
代码:
# 1. 打开文件
file = open("HELLO", "a", encoding="UTF-8")
# 2. 写入
text = file.write("Python自学网123")
# 3. 关闭
file.close()
执行结果:控制台没有数据内存不能为read修复 ,在HELLO文件新增加了Python自学网123
提示:后面三个只需有印象就好了,几乎不会用到,因为后三种会频繁的移动文件指针,会影响文件的读写效率,开发中很多的时候会以只读、只写的方式来操作文件内存不能为read修复 。
四、readline方法——按行读取文件内容
4.1》应用场景
read方法默认会把文件的所有内容一次性读取到内存,如果文件太大,对内存的占用会非常严重,此时需要解决可以利用readline方法再利用循环一行一行的把大文件读取完,一次读取一行内容不会给内存造成太大压力内存不能为read修复 。
4.2》readline方法
readline方法可以一次读取一行内容
方法执行后内存不能为read修复 ,会把文件指针移动到下一行,准备再次读取
4.3》读取大文件的正确步骤
# 1. 打开文件
file = open(“文件名”)
while True:
# 读取一行代码
text = file.readline()
# 判断是否督导内容
if not text:
break
# 每读取一行的末尾已经有内存不能为read修复 了一个 '\n'
print(text, end="")
# 3. 关闭文件
file.close()
代码示例:
准备工作:把HELLO文件内容修改成如下内存不能为read修复 ,方便观察
代码:
# 1. 打开文件
file = open("HELLO", encoding="UTF_8")
while True:
# 读取一行代码
text = file.readline()
# 判断是否读到内容
if not text:
break
# 每读取一行的末尾已经有内存不能为read修复 了一个 '\n'
print(text, end="")
# 3. 关闭文件
file.close()
执行结果:
本篇就到这里吧内存不能为read修复 ,Python文件的操作方法使用算是告一段落了,下一篇是文件读写案例—复制文件,敬请期待!
如果觉得对你有所帮助就多多支持一下博主吧内存不能为read修复 ,让我保持更多的创作动力!
分享网站:《Python自学网》/
基础入门到逐步深入 | 适合新手入门到精通 | 体系课程:Web开发、爬虫、图形界面化、自动化(运维、测试)、云计算
爱资源吧版权声明:以上文中内容来自网络,如有侵权请联系删除,谢谢。