![](https://i-blog.csdnimg.cn/blog_migrate/259b345c3ecdfc6514d26e4033f8acf6.gif)
hello大家好我是你们的朋友JamesBin,今天我们就要学习python中一个重要的部分文件处理,学习了文件的处理后我们就可以进行进行结果的保存以及修改了,下面让我们来看一下问价处理是如何使用Python代码实现的吧。
打开文件
- 打开文件,得到文件句柄并赋值给一个变量
- 通过句柄对文件进行操作
- 关闭文件
下面看一下打开步骤的基本框架吧.。
#1. 打开文件,得到文件句柄并赋值给一个变量
f=open('a.txt','r',encoding='utf-8') #默认打开模式就为r
#2. 通过句柄对文件进行操作
data=f.read()
#3. 关闭文件
f.close()
上面的代码就可以实现文件的打开及读取了。
打开模式详解:
‘r’ | 以只读方式打开文件(默认) |
---|---|
‘w’ | 以写入的方式打开文件,会覆盖已存在的文件 |
’x’ | 如果文件已经存在,使用此模式打开将引发异常 |
a’ | 以写入模式打开,如果文件存在,则在末尾追加写 |
‘b’ | 以二进制模式打开文件 |
‘t’ | 以文本模式打开(默认) |
‘+’ | 可读写模式(可添加到其他模式中使用) |
‘U’ | 通用换行符支持 |
文件的读取
上面的代码其实已经实现了文件的读取过程,下面再详细的介绍一下吧。
文件读取分类:
f.read([size=-1]) 从文件读取size个字符,当未给定size或给定负值的时候,读取剩余的所有字符,然后作为字符串返回
f.readline([size=-1]) 从文件中读取并返回一行(包括行结束符),如果有size有定义则返回size个字符
文件写入
文件的写入可以分为以下几种,主要是使用write函数进行
f.write(str) 将字符串str写入文件
f.writelines(seq) 向文件写入字符串序列seq,seq应该是一个返回字符串的可迭代对象
f.truncate([size=file.tell()]) 截取文件到size个字节,默认是截取到文件指针当前位置
文件操作的其他重要指令
f.tell() 返回当前在文件中的位置
readline() 方法用于从文件读取整行,包括 “\n” 字符
如果文件太大,就不能用 read() 或者 readlines() 一次性将全部内容读入内存。
解决方法:
1、可以使用 while 循环和 readline() 来完成这个任务
2、使用 fileinput 模块
```css
f.close() 关闭文件对象f,并将属性f.close设置为True;
f.close 文件已关闭,则返回True;
f.encoding byte与str之间进行转换时使用的编码;
f.fileno() 返回底层文件的文件描述符;
f.flush() 清空文件对象;
f.isatty() 如果文件对象与控制台关联,就返回True;
f.mode 文件对象打开时使用的模式;
f.name 文件对象f的文件名(如果有);
f.newlines 文本文件f中的换行字符串的类型;
f.__next__() 返回文件对象f的下一行;
f.peek(n) 返回n个字节,而不移动文件指针的位置;
f.readable() 如果f已经打开等待读取,则返回True;
f.read(count) 文件对象f中读取至多count个字节,如果没有指定count,就读取从当前文件指针直到最后的每个字节,以二进制模式时,返回bytes对象;以文件模式时,返回str对象;
f.readinto(ba) 将至多len(ba)个字节读入到bytearray ba中,并返回读入字节数,如果在文件结尾,就为0;
f.readline(count) 读取下一行,包括\n;
f.readlines(sizehint) 读入到文件结尾之前的所有行,并以列表形式返回;
f.seek(offset,whence) 如果没有给定whence,或其为os.SEEK_SET,就按给定的offset移动文件指针...
f.seekable() 如果f支持随机存取,就返回True;
f.tell() 返回当前指针位置;
f.truncate(size)截取文件到当前文件指针所在位置,如果给定size,就到size大小处;
f.writable() 如果f是为写操作而打开的,就返回True;
f.write(s) 将文本对象s写入到文件;
f.writelines(seq)将对象序列写入到文件;
注意:
如果指定路径没有.txt文件,它会先创建一个文件,此文件路径和.py文件在同一路径下。
writelines()方法和readlines()方法对应,也是针对列表的操作。它接收一个字符串列表作为参数,将他们写入到文件中,换行符不会自动的加入,因此,需要显式的加入换行符。
实例(新建一个TXT文档,写入hello world!)
def write_file():
""" 文件写入"""
file_name = "wri2te_test.txt"
# 以写入的方式打开
f = open(file_name,'w')
# 写入内容
f.write('hello')
# 换行符
f.write('\n')
# 写入内容
f.write('world')
# 关闭文件
f.close()
#调用函数
write_file()
以上即为文件的所有操作方法,当然文件操作的知识点非常的多,大家可以先学习基础,等以后做项目用到再去查阅。非常感谢你的阅读。关注我,一起学习python。