文件读写
读文件
python读文件流程:
1、打开文件
2、读文件内容
3、关闭文件
注释:
1、打开文件
open(path, flag[, encoding][, errors])
path: 要打开文件的路径(路径前加r)
flag: 打开方式:
r----以只读的方式打开文件,文件的描述符放在文件的开头
rb----以二进制格式打开一个文件用于只读,文件的描述符放在文件的开头
r±—打开一个文件用于读写,文件的描述符放在文件的开头
w----打开一个文件只用于写入,如果该文件已经存在会覆盖,如果不存在则创建新文件
wb----打开一个文件值用于写入二进制,如果该文件已经存在会覆盖,如果不存在则创建新文件
w±—打开一个文件用于读写
a----打开一个文件用于追加,如果文件存在,文件描述符将会放到文件末尾
encoding: 编码方式
errors: 错误处理
示例:
path = r"C:\Users\xgg\Desktop\Python\文件读写\file1.txt"
#ignore 忽略错误
#f = open(path, "r", encoding="utf-8", errors="ignore")
f = open(path, "r", encoding="utf-8")
2、读文件内容
#1、读取文件全部内容
str1 = f.read()
print(str1)
#2、读取指定字符数
#str2 = f.read(10)
#print("*"+str2+"*")
#str3 = f.read(10)
#print("*"+str3+"*")
#3、读取整行,包括"\n"字符
#str4 = f.readline()
#print(str4)
#str5 = f.readline()
#print(str5)
#4、读取指定字符数
#str6 = f.readline(10)
#print(str6)
#5、读取所有行并返回列表
#list7 = f.readlines()
#print(list7)
#6若给定的数字大于0,返回实际size字节的行数
#list8 = f.readlines(25)
#print(list8)
print("*****")
#修改描述符的位置
f.seek(10)
str9 = f.read()
print(str9)
3、关闭文件
f.close()
完整的示例
try:
f1 = open(path, "r", encoding="utf-8")
print(f1.read())
finally:
if f1:
f1.close()
with……as 语句:
作用: 用于某些任务,可能事先需要设置,事后要做清理工作。
用法: with所求值的对象必须有一个__enter__()方法,一个__exit__()方法,紧跟with后面的语句被求值后,返回对象的__enter__()方法被调用,这个方法的返回值将被赋值给as后面的变量。当with后面的代码块全部被执行完之后,将调用前面返回对象的__exit__()方法。
#用with as语句读文件
with open(path, "r", encoding="utf-8") as f2:
print(f2.read())
写文件
写文件过程:
1、将信息写入缓冲区
f.write("sunck in")
2、刷新缓冲区: 直接把内部缓冲区的数据立刻写入文件,而不是被动的等待自动刷新缓冲区写入
f.flush()
完整示例:
f = open(path, "a") #打开文件
f.write("sunck in") #写入字符串
f.flush() #刷新
f.close() #关闭文件
with open(path, "a") as f2:
f2.write("good man")
使用pickle包读写
用来读写list、tuple、dict、set文件操作
示例:
import pickle #数据持久性模块
myList = (1,2,3,4,5,"sunck is a good man")
path = r"C:\Users\xgg\Desktop\Python\文件读写\file.txt"
f = open(path, "wb") #打开文件
pickle.dump(myList, f) #写入
f.close() #关闭
#读取
f1 = open(path, "rb") #打开
tempList= pickle.load(f1) #加载
print(tempList)
f1.close() #关闭