Python编程:05-文件读写,字典和json

文件的读写

读取一个文件

open(参数1,参数2) : 参数1,路径 参数2,读写的模式r/w/a, 参数2的缺省值是r(r 读取,w 写入,a 追加写入)

 filepath='D:/note9.txt'
 file1=open(filepath)
 print(file1.read())  #读取文件内容
 print(file1.readline())  #读取一行的内容
 print(file1.readlines())  #读取文件内容,返回值是列表,每一行就是一个元素,有换行符
 print(file1.read().splitlines())  #读取文件内容,返回值是列表,每样就是一个元素
 file1.close()  #关闭文件

如果遇到乱码问题,首先检查文件的编码,与pycharm保持一致
pycharm的编码设置 : settings→editor→file encodings,选择正确的编码

文件的写入

1、使用w写入:

 filepath2='D:/note99.txt'
 file2=open(filepath2,'w')
 file2.write('微微风簇浪')
 file2.close()

2、使用 a 写入

 filepath2='D:/note99.txt'
 file2=open(filepath2,'a')
 file2.write('散作满河星')
 file2.close()
  • r+ 可以同时读写,如果文件不存在,则报错,写入时是覆盖写入
  • w+ 可以同时读写,如果文件不存在,则新建文件,写入时是清空写入
  • a+ 可以同时读写,如果文件不存在,则新建文件,写入时是追加写入
 filepath2='D:/note99.txt'
 file2=open(filepath2,'w+')
 file2.write('春风得意马蹄疾,一日看尽长安花')
 file2.seek(0)  #让光标回到行首,seek(n)表示偏移n位,英文1个字节,汉字占两个字节
 print(file2.read())
 file2.close()

with open(), 用法与open()一样,并且它可以同时处理多个文件,也不需要写close()方法

 filepath='D:/210530.txt'
 filepath2='D:/210530_2.txt'
 with open(filepath) as file1,open(filepath2) as file2:
     print(file1.read())
     print(file2.read())

列如:将100以内的自然数写入文件

 with open('D:/210628_100以内的自然数.txt','w+') as file1:
     for i in range(1,101):
         if i==100:
             file1.write(str(i))
         else:
             file1.write(str(i)+',')  #write方法里必须写str类型的参数

字典

字典是非常常用的一种数据结构,它与json格式的数据非常相似,核心就是以键值对的形式存储数据,关于Python中的字典做如下四点说明:

1.构造字典对象需要用大括号表示 {},每个字典元素都是以键值对的形式存在,并且键值对之间用英文状态下的'':''隔开
2.键在字典中是唯一的,不能有重复,对于字符型的键需要用引号引起来。值可以是单个值,也可以是多个值构成的列表,元组或字典
3.字典不再是序列,无法通过位置索引完成元素值的获取,只能通过键索引实现。
4.字典是可变对象,字典是无序的

 dict1={'A':'apple','B':'book'}
 dict2={'B':'book','A':'apple'}
 print(dict1==dict2)

列表是有序的

 list1=[10,20]
 list2=[20,10]
 print(list1==list2)  #列表是有序的

字典的键可以存放不可变对象,不可以存放可变对象 字典的值可以存放任意对象 字典属于可变对象,可以进行增删改

字典的键是唯一的

 dict6={'A':'apple','A':'ace'}  #保存的是{'A':'ace'}
 print(dict6)

字典的新增与修改的语句是一样的,如果字典内已经有同名的键,则修改,如果没有,则新增

 dict9={'A':'apple'}
dict9['hyntehwrtgrf34nthbg']='3j5hg45umryjbtrghmryjbg'  #字典中没有对应的键,所以新增
 dict9['A']='ace'  #字典中有对应的键,所以进行修改
 print(dict9)

update()方法,可以添加或修改多个键值对

 dict9.update({'C':'cake','D':'duck','E':'earth'})
 print(dict9)

del 删除字典中的键值对

 del dict9['E']
 print(dict9)

清空字典中的键值对

 dict10={'A':'apple'}
 dict10={}  #这种方式,内存地址发生了变化,相当于重新定义了一个字典
 dict10.clear()  #这种方式,内存地址不变

遍历字典中的键值对

 dict11={'老虎':'WOW!!','羊':'咩~~','狗':'汪汪汪'}
 for k,v in dict11.items():
     print(k,v)

遍历键

 for k in dict11.keys():
     print(k)

遍历值

 for v in dict11.values():
     print(v)

判断某个对象是否在字典中,根据键判断,而不是值

 dict100={'ABC':'ABCDE'}
 print('ABCDE' in dict100)

json模块:json格式,非常像字典的字符串,
json.loads(str1) 把json转换为字典
json.dumps(str1_new) 将字典转为json

 str1='''{
     "aac003" : "tom",
     "tel" : "13959687639",
     "crm003" : "1",
     "crm004" : "1"
 }'''
 import json
 str1_new=json.loads(str1)  #将json格式转为字典
 print(type(str1_new))
 print(str1_new['tel'])
 str2=json.dumps(str1_new)  #将字典转为json
 print(type(str2))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容

  • noteId: "11381ab0ce9211edab7cdf73cea80b84"tags: [] [toc] ...
    天成宫去阅读 100评论 0 0
  • 1.js的介绍 Ⅰjs的由来 网景公司 布兰登·艾奇 ECMAScript Ⅱjs的概念 ...
    zhouTF阅读 116评论 0 1
  • 《矩阵式源考辽文化》 中华一脉润契丹, 对译字典证管见。 横融纵特析传承, 历史长河融通篇。20230401
    我为契丹代言阅读 75评论 0 1
  • 第一部分 初识Python语言 第1章 程序设计基本方法 1.1 计算机的概念 计算机是根据指令操作数据的设备,具...
    不脱发的程序员阅读 1,101评论 0 1
  • 关于数据的存储结构,以下选项描述正确的是( D )A: 数据所占的存储空间量B: 存储在外存中的数据C: 数据在计...
    IIronMan阅读 136,133评论 7 60