python学习笔记14(文件读写)

文件读写

读文件

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()    #关闭

猜你喜欢

转载自blog.csdn.net/weixin_42216171/article/details/85761767