文件的读写
读取一个文件
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))