文件操作 文件指针seek(0)当前文件指针位置f,teel()
文件读写(f.flush() 刷新缓冲区把内存缓冲区的内容直接写到磁盘里)
打开文件 f = open('a.txt') f.close() 用with打开文件最后会自动关闭 with open('a.txt') as f ,open('b.xtx') as f1: for line in f:print(line)
1.r read 打开不存在的文件会报错,在打开文件时默认为读 f = open('a.txt' ,encoding='utf-8') result = f.read() f.readline()只读一行内容 f.readlines() 把文件里的每行内容放到list里 2.w write 写 f = open('a.txt' ,'w',encoding='utf-8') f.write('134') 写的时候必须是字符串 f.writelines(s)这个可以写字符串,也可以传个列表把列表的内容循环的写到文件里(传只要可以循环的都可以读到文件里) 3.a 追加 f = open('a.txt' ,‘a’,encoding='utf-8') r 能读,不能写打开不存在的文件会报错 w 能写不能读 a 能写,但不会清空以前的内容,不能读
1.r+ 能读能写,打开不存在的文件会报错 2.w+ 能写能读,会清空以前的文件 3.a+ 能读能写,不会清空以前的文件 注意文件指针的位置
高效读文件 方式 f = open('a.txt' ,encoding='utf-8') for line in f: print(line) 循环取读文件一行一行的读取文件 read 和 readlines 把文件一下就读到内存中
文件的修改
第一种 先打开文件,读取文件,进行替换,删除原文件内容,再写入替换后的内容 f = open('a.txt','a+',encoding = 'utf-8') f.seek(0) result = f.read() new_result = result.replace('abc','ABC') f.truncate() f.write(new_result) f.close() 第二种 先预先打开一个空的可写文件 ,把原文件每一行替换后写入到打开的文件中,删除源文件,改预先打开文件的名字,导入os模块 import os f1 = open('a.txt',encoding='utf-8') f2 =open('a1.txt','w',encoding='utf-8') for line in f1: new_line = line.replace('-','1') f2.write(new_line) f1.close() f2.close os.remove('a.txt") os.rename('a1.txt','a.txt')
非空即真,非0即真(s ='' l=[] d={} s1 =set() tuple =())
json模块(json.dumps(d,ensure_ascii= False,indent =4)有中文显示中文 控制缩进)
把字典转换为json串(字符串) d ={'skk':333,'kskll':444} json2=json.dumps(d) 和 str(d)是有区别 json.dump(d,f,ensure_ascii= False,indent =4) 直接操作文件把字典d转换成json串写入文件中,不用再读取文件操作。
把json转成字典 json2= f.read() json.loads(json2) 而d = json.load(f) 直接操作文件,把json串读取后转成字典
函数(就是把一段代码封装起来,函数调用才执行)
在函数定义全局变量 global a a=5。一个变量在函数中,优先使用函数中的变量
def read_file(file_name): with open(file_name,encoding = 'utf-8') as f: result = f.read() return result 函数里定义的都是局部变量,出来函数就不能用了。 1.函数返回多个值时返回元组 d函数 return a,b,c a,b,c = d 2.函数不写返回值,返回none 3.函数里遇到return函数立即结束
函数的参数 def d(file,c=None)c的值不传的话,默认传None ,传的话用传的值。 传参是可以对应传参,也可传参时赋值。也可以两者混合用但是对应的应先写。
常量就是一个不会变的变量,一般用大写字母定义。