文件读写(一)
1 #r 只读,打开文件不存在的话,会报错 2 #w 只写,会清空原来文件的内容 3 #a 追加写,不会请求,打开的文件不存在的话,也会帮你新建的一个文件 4 print(f.read()) #获取到文件里面所有的内容 5 print(f.readlines()) #获取到文件里面的所有的内容,存放到一个list里 6 f=open('users.txt') 7 print(f.readline()) #读取一行 8 print(f.readline()) 9 10 #写11 a=['username1,123456\n','username2,123456\n']12 # for i in a:13 # f.write(i+'\n')14 print(f.writelines(a)) #用writelines不需要写循环,直接把list放到文件中15 16 u='abc,123'17 print(f.writelines(u)) #如果是字符串要放到文件中,最好不用要writelines,因为他要一个一个循环取;最到用write18 19 #如果要把list多个元素写到文件里,就用writelines,如果是字符串要写到文件中就用write
文件读写(二)
#r+ 读写模式 打开不存在的文件会报错#w+ 写读模式#a+ 追加读写# rb 二进制的读# wb 二进制的写#ab f=open('users.txt','w+',encoding='utf-8')print(f.read) #w+可以读到内容不报错,但是把文件内容清空了#a+ f=open('users.txt','a+',encoding='utf-8')f.seek(0)print(f.read)f.write('a+模式')#如果是二进制文件,或是图片需要用rb,wbres= open('333.jpg','wb')print(res)
二、修改文件内容:
1 #1、简单、粗暴直接的 2 f=open(r'c:\users\nhy\Desktop\file.txt',encoding='utf-8') #如果打开文件是绝对路径,如果路径中有\n就会转义,前面加r就不会转义 3 res=f.read().replace('一点','二点') 4 f.close() 5 f=open(r'c:\users\nhy\Desktop\file.txt',mode='w',encoding='utf-8') 6 f.write(res) 7 f.flush() 8 f.close() 9 10 #第二种修改的方法11 f=open('file.txt','a+',encoding='utf-8')12 f.seek(0)13 res=f.read().replace('你','NI')14 f.truncate() #把原来的内容删掉15 f.write(res)16 f.close()17 18 #第三种:如果是小文件用上面两种方法还可以,如果是大文件用下面的文件19 import os20 f=open('file.txt','a+',encoding='utf-8')21 f2=open('file.txt.bak','w',encoding='utf-8')22 for line in f:23 new_line=line.replace('NI','你')24 f2.write(new_line)25 f.close()26 f2.close()27 os.remove('file.txt') #删除file.txt文件28 os.rename('file.txt.bak','file.txt') #把file.txt.bak文件名称替换成file.txt29 30 #第四种实现方式31 #如果不想close关闭文件,可以直接用with操作32 with open('file.txt',encoding='utf-8') as f,open('file.txt.bak',encoding='utf-8') as f2:33 for line in f :34 new_line=line.replace('两点','一点')35 f2.write(new_line)36 os.remove('file.txt')37 os.rename('file.txt.bak','file.txt')
三、处理json:
1 #json通用的数据类型,所有的语言都认 2 #key--vules形式
3 #json串是字符串 4 5 s=''' 6 { 7 "error_code": 0, 8 "stu_info": [ 9 {10 "id": 309,11 "name": "小白",12 "sex": "男",13 "age": 28,14 "addr": "河南省济源市北海大道32号",15 "grade": "天蝎座",16 "phone": "18512572946",17 "gold": 10018 },19 {20 "id": 310,21 "name": "小白",22 "sex": "男",23 "age": 28,24 "addr": "河南省济源市北海大道32号",25 "grade": "天蝎座",26 "phone": "18516572946",27 "gold": 10028 }29 ]30 }31 '''32 33 import json34 res=json.loads(s) #json串(字符串),转成字典35 print(res)36 print(res.keys()) #打印37 print(type(res)) #打印类型key38 #dumps 把字典转成json,字符串39 stus={ 'xiaojun':123456,'xiaohei':123456,'xiaowang':123456,'海龙':123456}40 res2=json.dumps(stus,indent=4,ensure_ascii=False) #indent控制缩进 ensure_accii=False打印控制显示中文41 print(res2)42 print(type(res2))43 with open('stus.txt','w',encoding='utf-8') as f:44 f.write(res2)45 46 with open('stus.txt','w',encoding='utf-8') as f:47 f.write(res2)48 49 # json.loads 和json.load的区别50 f=open('stus.json',encoding='utf-8')51 content=f.read()52 user_dic=json.loads(content) #json.loads读的是字符串,必须把文件先读出来53 print(user_dic)54 55 f=open('stus.json',encoding='utf-8')56 user_dic=json.load(f) #json.load直接传一个文件对像就可以,自动读出来57 print(user_dic)58 59 #dump()和dumps()的区别60 stus={ 'xiaojun':123456,'xiaohei':123456,'xiaowang':123456,'海龙':123456}61 f=open('stus2.json','w',encoding='utf-8') 62 json.dump(stus,f,indent=4,ensure_ascii=False) #把stus写入f 63 f.close 64 #如果你要把字典写到文件里面的用dump比较方便
65 #如果要把字典存到数据库里面就只能用dumps
0 #r 只读,打开文件不存在的话,会报错 #w 只写,会清空原来文件的内容11 #a 追加写,不会请求,打开的文件不存在的话,也会帮你新建的一个文件12 f=open('users.txt','a+')13 f.seek(0) #t移动文件指针14 print(f.read()) #获取到文件里面所有的内容 15 print(f.readlines()) #获取到文件里面的所有的内容 16 print(f.readline()) #读取一行 17 print(f.readline()) 18 #写