五.文件的读写+字典

1.文件的读写

1.读取一个文件 open(参数1,参数2) 参数1,路径 参数2,读写的模式r/w/a,参数2的缺省值是r

1.1 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() #关闭文件

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

文件的写入

filepath2='D:/note99.txt'

file2=open(filepath2,'w')

file2.write('微微风簇浪')

file2.close()

filepath2='D:/note99.txt'

file2=open(filepath2,'a')

file2.write('散作满河星')

file2.close()

1.3 r+,w+,a+

r+ 可以同时读写,如果文件不存在,则报错,写入时是覆盖写入 w+ 可以同时读写,如果文件不存在,则新建文件,写入时是清空写入 a+

件不存在,则新建文件,写入时是追加写入

文件中一开始是'ABCDE',如果用r+,写入'QQ',最后就变成'QQCDE' 文件中一开始是'ABCDE',如果用w+,写入'QQ',最后就变成'QQ'

filepath2='D:/note99.txt'

file2=open(filepath2,'w+')

file2.write('春风得意马蹄疾,一日看尽长安花')

file2.seek(0) #让光标回到行首,seek(n)表示偏移n位,英文1个字节,汉字占两个字节

print(file2.read())

file2.close()

1.4 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())

1.5将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类型的参数

2.字典

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

1.构造字典对象需要用大括号表示 {},每个字典元素都是以键值对的形式存在,并且键值对之间用英文状态下的'':''隔开

2.键在字典中是唯一的,不能有重复,对于字符型的键需要用引号引起来。值可以是单个值,也可以是多个值构成的列表,元组或

3.字典不再是序列,无法通过位置索引完成元素值的获取,只能通过键索引实现。

4.字典是可变对象

2.2字典是无序的

dict1={'A':'apple','B':'book'}

dict2={'B':'book','A':'apple'}

print(dict1==dict2)

2.3列表是有序的

list1=[10,20]

list2=[20,10]

print(list1==list2) #列表是有序的

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

字典的键是唯一的

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

print(dict6)

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

dict9={'A':'apple'}

dict9['hyntehwrtgrf34nthbg']='3j5hg45umryjbtrghmryjbg' #字典中没有对应的键,所以新增

dict9['A']='ace' #字典中有对应的键,所以进行修改

print(dict9)

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

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

print(dict9)

2.7 del 删除字典中的键值对

del dict9['E']

print(dict9)

2.8清空字典中的键值对

dict10={'A':'apple'}

dict10={} #这种方式,内存地址发生了变化,相当于重新定义了一个字典

dict10.clear() #这种方式,内存地址不变

2.9 遍历字典中的键值对

dict11={'老虎':'WOW!!','羊':'咩~~','狗':'汪汪汪'}

for k,v in dict11.items():

print(k,v)

2.10遍历键

for k in dict11.keys():

print(k)

2.11遍历值

for v in dict11.values():

print(v)

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

dict100={'ABC':'ABCDE'}

print('ABCDE' in dict100)

2.13 json模块

#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)

上一篇:2021-10-28


下一篇:2021-09-26