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))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

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