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)