Python3中对文件的读写操作使用open函数来完成。
1:获取open函数及返回实例的帮助文档
print(help(open))for item in dir(open('t.txt','w')): print(item)
2:open函数的定义及参数说明
2.1:open函数定义及返回值:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None);
其返回值是一个可迭代对象;
2.2:参数说明
2.3:参数组合
2.4:示例
# encoding=gbk #1:r:读文件,文件不存在抛出FileNotFoundError异常f = open('test.txt','r') # 光标在第一行print(f.readline()) # 光标下移一行print(f.read()) # 读取剩下的print(f.read()) # 再读就为空print(f.read()) # 再读就为空print('*'*60)f.seek(0) # 光标定位到0,可重新读print(f.read())f.close()print('--1--','*'*60)#2:r+:可读写;首先读文件,文件不存在抛出FileNotFoundError异常;# 读之前写,会覆盖f = open('test.txt','r+')f.write('1234') # 直接写会覆盖 光标为0开始的4个字符print(f.read()) # 从光标处开始读(此处为3)f.close() #读之后写, 写到文件末尾f = open('test.txt','r+')print(f.read(1)) # 在写之前进行读操作,后面的写操作会在文件的末尾f.write('1234') # 写在文件的末尾,光标在文件末尾print('[',f.read(),']') # 这里的读为空# f.seek(0)# print('[',f.read(),']')f.close()print('--2--','*'*60)# 3:w: 文件不存在就创建,文件存在就清空f = open('test.txt','w')f.write('1233455')f.close() print('--3--','*'*60)# 4:w+: 可读写,,文件不存在就创建,文件存在就清空;f = open('test.txt','w+')f.write('1233455') # 光标在文件末尾print(f.read()) # 光标在文件末尾,读的内容为空f.seek(0) # 光标在文件开头print('[',f.read(),']') # 光标在文件末尾f.write('888') # 在文件末尾写f.seek(0) # 光标在文件开头f.write('999') # 从光标处覆盖f.close()print('--4--','*'*60) # 5:a:文件不存在就创建,文件存在就在末尾写f = open('test.txt','a') # 光标在文件末尾f.write('1233455')f.close() print('--5--','*'*60)# 6:a+:可读写,文件不存在就创建,存在就在文件末尾写f = open('test.txt','a+') # 光标在文件末尾print(f.read()) # 光标在文件末尾,读的结果为空。f.write('123345599') # 在文件末尾写f.seek(0) # 光标在文件开头print(f.read())f.seek(0) # 光标在文件开头f.write('8888888') # 在文件末尾写,与光标没关系f.close() # 二进制模式 b,与上面的文本模式是一样的操作,
3:文件对象常用方法
4:with open 语法
在open打开文件之后,在处理完文件时,需要调用close对文件进行关闭。open打开文件返回的文件对象,是可迭代对象,同时它也支持上下文管理协议(即对象有__enter__()和__exit__()这两个方法),因此可以使用with 语句来操作,它隐式地调用close方法。
例子:
# encoding=gbk# 1:读取所有行;不需要调用f.close()with open('test.txt','r') as f: print(f.read()) # 2:一行一行读with open('test.txt','r') as f: for item in f: print(item) # item 中有换行符,item[:-1] 可去掉最后一个字符
领取专属 10元无门槛券
私享最新 技术干货