文件处理
‘‘‘ 什么是文件? 操作系统将复杂的硬件操作包装成一个简易的接口 为什么操作文件? 人或程序需要永久的存储数据 ‘‘‘ # 通过Python代码来操作文件 # 打开文件 open(r"D:\py\day07\111.txt",encoding=‘utf-8‘) # 操作系统,默认编码为gbk # r 取消转义 # f = open(r"D:\py\day07\111.txt",encoding=‘utf-8‘) # f为文件对象.f也是一个变量名 # print(f.read()) # 将文件中的内容全部读出 # f.close() # 告诉操作系统将文件关闭 # 这样每次用完文件都要告诉操作系统关闭文件太过麻烦.接下来介绍一种比较简单的方法 # with open(r"D:\py\day07\111.txt",encoding=‘utf-8‘) as f: f仅仅是个变量名,可以把它理解为遥控器 # print(f) # print(f.read()) # 文件打开方式: # r 只读 # w 只写 # a 追加写模式 # 操作文件单位方式 # t 文本文件 文本文件在使用是一定要标明encoding模式.不然会采用系统默认编码GBk # b 二进制 一定不能标明encoding 该模式是直接用二进制进行传输 # mod参数可以不写,默认情况下是rt模式 如果只写了r w a默认情况下rt wt at # with open(r‘D:\py\day07\111.txt‘,mode = ‘r‘,encoding=‘utf-8‘) as f: # print(f.readable()) # 可读 # f.write(‘aaaaa‘) # 直接报错,在r模式下只能读 # r 模式下打开文件,如果文件不存在直接报错 # with open(r‘D:\py\day07\111.txt‘,mode = ‘r‘,encoding=‘utf-8‘) as f: # print(f.read()) # 将文件内容一次性全部读出 # print(f.readline()) # 将文件内容一行读出,如果文件内容过大,一次性全部读出可能会导致内存爆炸,逐行减轻内存压力 # print(f.readline()) # print(f.readline()) # print(f.readlines()) # 返回一个列表,列表中每个元素与文件中的行一一对应 # 也可以使用for循环将文件每行全部读出 # for line in f: # print(line) # w模式,w模式在文件存在时,会将文件清空,再进行写入,在文件不存在时会新建一个文件 # l = [‘阿挺冲冲冲\r‘,‘阿挺冲冲冲\r‘,‘阿挺冲冲冲\r‘] # with open(r‘D:\py\day07\test.txt‘,mode=‘w‘,encoding=‘utf-8‘) as f: # print(f.readable()) # 在w模式下只能写不能读 # print(f.writable()) # f.write(‘asdasdasd‘) # 文件内容会直接清空,重新写入 # f.writelines(l) # 可以输入容器类型,内部就是for循环 # for line in l: # f.write(line) # a模式,a模式在文件不存在时会新建一个文件,在文件存在时不会清空文件,会将光标移动到末尾进行添加 # with open(r‘D:\py\day07\test.txt‘,mode=‘a‘,encoding=‘utf-8‘) as f: # print(f.readable()) # a模式下只能写,不能读 # print(f.writable()) # f.write(‘chongchong\r‘) # 在文件末尾直接进行添加
原文:https://www.cnblogs.com/asdaa/p/11147223.html