day 3 文件操作 函数

  文件操作   文件指针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  ,传的话用传的值。     传参是可以对应传参,也可传参时赋值。也可以两者混合用但是对应的应先写。   

  常量就是一个不会变的变量,一般用大写字母定义。

猜你喜欢

转载自www.cnblogs.com/11-pythong/p/11568797.html