python基础篇 08-文件基本操作
open(r'e:\a.txt',)# r 代表使用原字符 # r w a # r+ w+ a+ # r打开不存在的文件都会报错 只能读 不能写 只读模式 # r+ 文件不存在则报错 能读写,从f.seek(0)开始写 覆盖写 由于文件大小不同不能获取到文件指针最后位置,所以不能追加写 只能覆盖写 所以此种方法一般不用 # r r+ 打开存在文件不清空,文件指针从 0 开始 # w 文件不存在,能新建文件,只能写 不能读、清空写 只清空写模式 # w+ 文件不存在则新建 能读写,清空写 # w+ w 打开文件就清空了 所以 一般不使用此中方法 # a 文件不存在则新建, 能写 不能读 追加写 只追加写模式 # a+ 文件不存在则新建,能读写,追加写 + f.seek(0) 此种方式常用 """ 修改文件内容例子 """ f = open('a.txt','a+',encoding='utf-8') #三种模式 默认r模式、 如果有中文需要加encoding='utf-8' 读文件时候,如果文件不存在则报错 f.seek(0) result = f.read() # 读取文件中所有的内容 new_result = result.upper() #修改文件内容 f.seek(0) #读完文件后 文件指针返回到最前面 f.truncate() #清空文件内容 f.write(new_result) # 需要指定文件为 w 模式 f.close() """ 读文件方式 """ result = f.readlines() #返回一个列表,列表中每个元素是一行元素 result = f.readline() #一行一行的读取文件, """ 写入list例子 """ names = ['fd','lhy','hzy','wq'] f.write(names) # 写入内容 必须是 字符串,list无法写。是字符串的 用write()函数 抛异常 f.writelines(names) #可以写list中的内容, 循环list中元素且元素格式必须是字符串格式,以字符串格式写入文件。是list的用 writelines()函数 # 换行写 new_name = '\n'.join(names) #将list 以 \n 拼接list中元素,返回字符串,使用write()方法写 f.write(new_name) # 写入拼接后的字符串 # 非字符串转换为字符串写 numbers = [1,2,3,4,56] for index in range(len(numbers)): numbers[index] = str(numbers[index]) # print(numbers) f.writelines(numbers) # 写入list中元素 循环写 f.close() #文件指针:
读写大文件 或者 修改文件中内容常用方法思路:
with open('user.txt',encoding='utf-8') as f: #文件对象,文件句柄 for line in f: # 直接循环f 则取文件每一行 line = line.strip() if line: print(line) #1、读取到文件所有内容 #2、替换 new_str #3、清空原来的文件 #4、写进去新的 #新的 import os with open('words.txt',encoding='utf-8') as fr,open('words_new.txt','w',encoding='utf-8') as fw: for line in fr: if line.strip(): fw.write(line.strip().upper()+'\n') os.remove('words.txt') #删除文件 os.rename('words_new.txt','words.txt') # 修改文件名称