不变吗就是一种规则集合,记录了内容和二进制相互转换的逻辑,常用的有UTF-5、GBK等编码
计算机只认识二进制的0和1,所以需要将内容翻译成二进制才能保存在计算机中。同时也需要编码,反向翻译回原始文件内容。
读取大致分为三步:打开文件、读取文件、关闭文件
read(nbytes),从文件中读取nbytes字节的数据,如果没写参数nbytes,默认读取文件的全部内容
按行读取文件内容,将每行数据保存到列表容器,用返回值接收。
读取文件的一行。
关闭文件
with open(“E:/Program/Python/test.txt”, “r”, encoding=“UTF-8”) as f, 可以避免忘记关闭文件而导致的异常。
import time # 导入sleep需要的包
file = open("E:/Program/Python/test.txt", "r", encoding="UTF-8")
print(type(file))
# 1.read方法
print(file.read(10)) # 读取10个字节
print(file.read()) # 读取全部内容
# 2.readlines方法
file_list = file.readlines()
print(file_list)
print(type(file_list))
# 3. readline
print(file.readline())
# 4.循环读取每一行
for item in file.readlines():
print(item)
time.sleep(10)
# 5.关闭文件
file.close()
# 6.with open,可以避免忘记关闭文件而导致的异常
with open("E:/Program/Python/test.txt", "r", encoding="UTF-8") as f:
for line in f:
print(line)
直接调用write,内容并未真正写入到文件,只是写在了磁盘的缓冲区,当调用flush时才会真正落盘。为什么要调用flush才落盘呢?这样是为了避免频繁的刷盘导致性能下降,只有在特定时候才会刷盘。
import time
file = open("E:/Program/Python/python.txt", "w", encoding="UTF-8")
file.write("hello, this is lwang.")
file.write("hello, this is lwang.")
file.write("hello, this is lwang.")
file.write("hello, this is lwang.")
# time.sleep(100000)
file.flush()
# time.sleep(100000)
file.close() # close内置flush功能
# 追加写测试
file2 = open("E:/Program/Python/python2.txt", "a", encoding="UTF-8")
file2.write("hello,world!")
file2.write("\nhere is lwang.")
file2.flush()
file2.close()