博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
05文件的读写+字典
阅读量:2049 次
发布时间:2019-04-28

本文共 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 indexing
ABCD#可以使用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/

你可能感兴趣的文章
5月23日-健身8-上肢
查看>>
5月29日-健身11-下肢
查看>>
腾讯技术面试官如是说
查看>>
5月27日-健身10-下肢
查看>>
5月16日-健身6-下肢
查看>>
算法工程师 面经2019年5月
查看>>
搜索架构师 一面面经2019年6月
查看>>
稻草人手记
查看>>
第一次kaggle比赛 回顾篇
查看>>
leetcode 50. Pow(x, n)
查看>>
leetcode 130. Surrounded Regions
查看>>
【托业】【全真题库】TEST2-语法题
查看>>
博客文格式优化
查看>>
【托业】【新托业全真模拟】疑难语法题知识点总结(01~05)
查看>>
【SQL】group by 和order by 的区别。
查看>>
【F12】谷歌浏览器--前台效果可以在不访问服务器的前提下直接改样式看效果是否是预期值。...
查看>>
【Python】详解Python多线程Selenium跨浏览器测试
查看>>
Jmeter之参数化
查看>>
Shell 和Python的区别。
查看>>
Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
查看>>