目录
文件读写包括文件读取和写入文件
一、文件读取
读取文件包括:打开文件、读文件、关闭文件
file1 = open('/Users/Ted/Desktop/test/abc.txt','r',encoding='utf-8') #打开文件
filecontent = file1.read() #读文件
file1.close() #关闭文件
1.1 打开文件
open()函数
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
file1 = open('/Users/Ted/Desktop/test/abc.txt','r',encoding='utf-8')
参数说明:
- file: 必需,文件路径(相对或者绝对路径),绝对路径就是最完整的路径,相对路径指的就是【相对于当前文件夹】的路径,也就是你编写的这个py文件所放的文件夹路径
- 注意:路径中的'\'会被识别成转义字符,三种处理办法:
open('C:\\Users\\Ted\\Desktop\\test\\abc.txt') #将'\'替换成'\\' open(r'C:\Users\Ted\Desktop\test\abc.txt') #在路径前加上字母r open(r'C:/Users/Ted/Desktop/test/abc.txt') #替换为/
- 注意:路径中的'\'会被识别成转义字符,三种处理办法:
- mode: 可选,文件打开模式
- buffering: 设置缓冲
- encoding: 选择编码表
- errors: 报错级别
- newline: 区分换行符
- closefd: 传入的file参数类型
- opener: 设置自定义开启器,开启器的返回值必须是一个打开的文件描述符。
- file1:用于存放打开的文件的变量
1 | 关闭文件。关闭后文件不能再进行读写操作。 |
2 | 刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。 |
3 | 返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。 |
4 | 如果文件连接到一个终端设备返回 True,否则返回 False。 |
5 | Python 3 中的 File 对象不支持 next() 方法。 返回文件下一行。 |
6 | 从文件读取指定的字节数,如果未给定或为负则读取所有。 |
7 | 读取整行,包括 "\n" 字符。 |
8 | 读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比 sizeint 较大, 因为需要填充缓冲区。 |
9 | 移动文件读取指针到指定位置 |
10 | 返回文件当前位置。 |
11 | 从文件的首行首字符开始截断,截断文件为 size 个字符,无 size 表示从当前位置截断;截断之后后面的所有字符被删除,其中 windows 系统下的换行代表2个字符大小。 |
12 | 将字符串写入文件,返回的是写入的字符长度。 |
13 | 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。 |
1.2 读文件
read()函数
对于借助 open() 函数,并以可读模式(包括 r、r+、rb、rb+)打开的文件,可以调用 read() 函数逐个字节(或者逐个字符)读取文件中的内容。
如果文件是以文本模式(非二进制模式)打开的,则 read() 函数会逐个字符进行读取;反之,如果文件以二进制模式打开,则 read() 函数会逐个字节进行读取。
file.read([size])
size 作为一个可选参数,用于指定一次最多可读取的字符(字节)个数,如果省略,则默认一次性读取所有内容。
1.3 关闭文件
close()函数
作用:
1.计算机能够打开的文件数量是有限制的,open()过多而不close()的话,就不能再打开文件了;
2.能保证写入的内容已经在文件里被保存好了。
二、写入文件
写入文件包括:打开文件、写入文件、关闭文件
file1 = open('/Users/Ted/Desktop/test/abc.txt', 'w',encoding='utf-8') #打开文件
file1.write('张无忌\n') #写文件
file1.close() #关闭文件
打开及关闭与文件读取一致,这里主要描述如何写入文件。
2.1 write()函数
write()函数与open()函数配合使用时需要注意
- 如果文件是以“w”形式打开的,则write()函数此时的作用是重写文件内容
- 如果文件是以“a”形式打开的,则write()函数此时的作用是在原文件内容后面增加新内容
file1 = open('/Users/Ted/Desktop/test/abc.txt', 'w',encoding='utf-8')
file1.write('张无忌\n')
file1.write('宋青书\n')
file1 = open('/Users/Ted/Desktop/test/abc.txt', 'a',encoding='utf-8')
#以追加的方式打开文件abc.txt
file1.write('张无忌\n')
#把字符串'张无忌'写入文件file1
file1.write('宋青书\n')
#把字符串'宋青书'写入文件file1
2.2 with的用法
补充一个用法,为了避免打开文件后忘记关闭,占用资源或当不能确定关闭文件的恰当时机的时候,我们可以用到关键字with,此时可以不用使用close()函数:
# 普通写法
file1 = open('abc.txt','a')
file1.write('张无忌')
file1.close()
# 使用with关键字的写法
with open('abc.txt','a') as file1:
#with open('文件地址','读写模式') as 变量名:
#格式:冒号不能丢
file1.write('张无忌')
#格式:对文件的操作要缩进
#格式:无需用close()关闭