博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python笔记(三)---文件读写、修改文件内容、处理json、函数
阅读量:5988 次
发布时间:2019-06-20

本文共 4187 字,大约阅读时间需要 13 分钟。

文件读写(一)
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 #写

转载于:https://www.cnblogs.com/jingshuhui/p/9589382.html

你可能感兴趣的文章
CentOS 6安装配置LDAP【smile_青春】
查看>>
pycharm快捷键、常用设置、包管理
查看>>
linux系统时间修改及同步
查看>>
U盘上的Linux系统 - Slax Linux[转]
查看>>
ln 软链接,硬链接 详解
查看>>
IO错误 IOErrorEventtype IIS以及Apache/Nginx PHP上传报错
查看>>
顺序链表
查看>>
自己总结的etl数挖掘据工具-Kettle
查看>>
超棒的自定义超酷滚动条jQuery插件 - Perfect Scrollbar
查看>>
Vue入门十三、路由的传参和取参
查看>>
缓存雪崩问题
查看>>
第二次作业
查看>>
开源数据中心资产管理系统openDCIM 官方WIKI翻译
查看>>
嵌入式流程解决方案
查看>>
JDBC
查看>>
揭秘Amazon DynamoDB:NoSQL融合云服务
查看>>
IT人生需要指引 (转)
查看>>
疯狂java学习笔记1025---java集合类概述
查看>>
PopupWindow整理
查看>>
oracle 菜鸟学习之 decode中if-then-else逻辑
查看>>