本文共 3092 字,大约阅读时间需要 10 分钟。
文件内容如下:
我住长江头, 君住长江尾, 日日思君不见君, 共饮长江水。filpath = r'Y:\version\note.txt'file1 = open(filpath)print(file1.read())#read读取全部file1.seek(0)#让光标回到最前面,0表示偏移0个字节,单位是字节,utf-8中一个汉字是两个字节,所以至少要偏移2个字节,偏移一个会报错。一个字母占一个字节print(file1.readline().strip(),)#readline读取一行,包括后面的换行符,如果不加strip,打印出来会多一个换行符print(file1.readlines())#readlines按行读取所有,以列表的形式存放。file1.close()输出我住长江头,君住长江尾,日日思君不见君,共饮长江水。我住长江头,['君住长江尾,\n', '日日思君不见君,\n', '共饮长江水。']with open(filpath2,'r+') as f1:#简写方式 f1.write('d')
open函数有两个参数,第一个是文件(包含路径),第二个是读写模式,第二个参数省略时默认是r模式。
具体模式如下: r:只读,文件不存在报错 r+ :读写,文件不存在报错,写入是覆盖写入(覆盖写入是从第一个开始覆盖,如果写入的字符少,后面原有字符就不会被覆盖) rb:只读,以二进制形式读取 w:只写,文件不存在创建文件,写入是清空写入 w+:读写,文件不存在创建文件,写入是清空写入 wb:以二进制形式读写 a:只写,文件不存在创建文件,写入是追加写入 ab:以二进制形式追加写入 a+:读写,文件不存在创建文件,写入是追加写入如果遇到乱码问题:
1、检查文件的编码 2、检查pycharm的编码:settings—editor——file encodings,选择正确编码字典:
1、字典是无序的,set 集合也是无序的,list是有序的。dict1 = { 'A':'apple','B':'book'}dict2 = { 'B':'book','A':'apple'}print(dict1 == dict2)输出True
2、字典的键必须是不可变对象,字典的值可以是存放任意对象。
dict1 = { ['a']:[1,2,3,4]}print(dict1)错误:TypeError: unhashable type: 'list'dict1 = { 1:[1,2,3,4]}print(dict1)dict1 = { (1,):{ 'A':[1,2,3,(4,5)]}}print(dict1)输出:{ (1,): { 'A': [1, 2, 3, (4, 5)]}}
3、字典的健是唯一的
dic = { 'A':'abc','A':'def'}#最后保存的是defprint(dic)输出{ 'A': 'def'}
4、字典中,新增健和修改键值的语句是一样的,字典会自己判断是新增还是修改,没有的话就新增,有的话就修改。
5、update()方法可以修改或者新增多个键值dic = { 'A':'abc','B':'def'}print(dic)print(dic['A'])dic.update({ 'A':[1,3,4],'C':123,'D':(1,3,4)})print(dic)输出{ 'A': 'abc', 'B': 'def'}abc{ 'A': [1, 3, 4], 'B': 'def', 'C': 123, 'D': (1, 3, 4)}
6、删除字典中的键值对
dic = { 'A':'abc','B':'def'}dic.update({ 'A':[1,3,4],'C':123,'D':(1,3,4)})del dic['D']print(dic)输出{ 'A': [1, 3, 4], 'B': 'def', 'C': 123}
7、清空
这种方法id不变dic = { 'A':'abc','B':'def'}dic.update({ 'A':[1,3,4],'C':123,'D':(1,3,4)})print(id(dic))dic.clear()print(id(dic))print(dic)输出3502792035027920{ }这种方法id会变dic = { 'A':'abc','B':'def'}dic.update({ 'A':[1,3,4],'C':123,'D':(1,3,4)})print(id(dic))dic = { }print(id(dic))print(dic)输出3325844833258520{ }
8、遍历字典中的健、值、键值对
dic = { 'A':'abc','B':'def'}dic.update({ 'A':[1,3,4],'C':123,'D':(1,3,4)})print(type(dic.keys()))#类列表,但是不是列表,可以遍历,但是不恩呢该使用下标for i in dic.keys(): print(i)print(dic.keys()[1])#不能下标,报错输出: print(dic.keys()[1])TypeError: 'dict_keys' object does not support indexingABCD#可以使用list方法,将类列表转化为列表,再使用下标list3 = list(dic.keys())#键值对dic = { 'A':'abc','B':'def'}dic.update({ 'A':[1,3,4],'C':123,'D':(1,3,4)})for k,v in dic.items(): print(k,v)输出A [1, 3, 4]B defC 123D (1, 3, 4)
9、json格式,比较像字典,但属于str类型
#json和字典有点差别,json{}里面必须是双引号的,字典可以是双引号也可以是单引号或者三引号。所以,如果是单引号,可以确定是字典,但是双引号不确定是字典还是json格式。下面代码注意看输出,字典默认是用的单引号。str1 = '''{ "aac003":"tom", "tel":"13018928871", "crm003":"1", "crm004":"1"}'''print(type(str1))import jsonstr1_new = json.loads(str1)print(type(str1_new))print(str1_new)str2 = json.dumps(str1_new)print(type(str2))print(str2)输出:{ 'aac003': 'tom', 'tel': '13018928871', 'crm003': '1', 'crm004': '1'} { "aac003": "tom", "tel": "13018928871", "crm003": "1", "crm004": "1"}
转载地址:http://gchof.baihongyu.com/