一、open函数回顶
f = open("D:/好代码.txt", "r", encoding="UTF-8")
print(type(f))
#* open函数用来打开文件,四个参数,但是我们暂时先用三个,第一个参数是字符串,是文件的地址,第二个参数是模式,
#* 有"r","w","a"三种,r是只读,w是写入,a是追加
#* open函数返回文件对象,可以通过type查看到
#! 如果没有文件,那么它会创建一个新文件
二、read函数回顶
#TODO read方法,作用于文件对象,可以读取指定字节的文件内容,不指定参数,则读取全部文件内容
#! 如果多次调动read,那么下次read就会从上次read的最后位置开始读取
#! 或者,从更加广泛的角度来说,只要使用了r模式打开文件进行读取,那么后面无论使用什么方法和函数,
#! 都会续接上一次读取文件方法的最后读取位置,当然这一切是在同一个文件对象前提来说,如果文件对象不一样,
#! 那么两个文件对象互不相关是理所应当的
print(f"读取十个字节:{f.read(10)}")
print(f"读取剩下的内容:{f.read()}")
三、close函数回顶
#TODO close()函数可以关闭文件
f.close()
四、readline与readlines回顶
#TODO readlines()方法会读取文件对象的所有行,并且封装到一个列表中
#TODO readline()读取一行
#! 注意,所有读行操作,即readlines和readline,甚至是for循环取出文件对象的每一行(后面会讲)
#! 都会将行末的换行符\n读取到,因此要进行strip操作(后面会演示)
f = open("D:/好代码.txt", "r", encoding="UTF-8")
line = f.readline()
lines = f.readlines()
print(line)
print(f"lines对象的类型:{type(lines)}")
print(f"lines对象的内容是:{lines}")
f.close()
f = open("D:/好代码.txt", "r", encoding="UTF-8")
for line in f:
print(line)
f.close()
五、with open回顶
#TODO with open可以自动帮助我们关闭文件
with open("D:/好代码.txt", "r", encoding="UTF-8") as f:
for line in f:
print(line)
六、写入操作回顶
#TODO "w"的具体作用是,清除文件的所有内容之后,再重新写入,相对于冲洗文件
f = open("D:/好代码.txt", "w", encoding="UTF-8")
#TODO 通过write,可以将具体内容暂时写入缓冲区
f.write("hello world!")
#TODO flush可以将缓冲区所放的内容真正写入文件
f.flush()
#* 但是事实上,close函数已经内置了flush()方法
f.close()
#! 这里需要注意的是只要用w打开了一个文件对象,那么在关闭这个文件对象前
#! 多次使用write是可以累加所写内容的,最后flush或者close才将全部的内容写入文件
#! 此外,只要用w打开了一个文件,这个文件的所有内容就会被清空
七、追加操作回顶
#TODO a的作用是追加内容,write的参数就是所追加的内容
#! 但是通常write是追加内容,没有换行,若要换行,可以用\n
f = open("D:/好代码.txt", "a", encoding="UTF-8")
f.write("hello world!")
f.close()