资讯专栏INFORMATION COLUMN

head first python(第四章)–学习笔记

venmos / 590人阅读

其实持久存储不仅仅包含文件,还包括数据库等,本章先介绍一部分,先熟悉一下。

熟悉python数据
#!/usr/bin/python
# -*- coding: utf-8 -*-


man = []
other = []

try:
    data = open("sketch.txt")
    for each_line in data:
            try:
                    (role,line_spoken) = each_line.split(":",1)
                    line_spoken = line_spoken.strip()  #这里的解读是:这里不是直接处理line_spoken字符串,python 不会改变字符串,他会创建一个新的字符串出来然后执行类似如strip()的方法,然后将返回值赋值到原来的字符串
                    if role == "Man":
                            man.append(line_spoken)
                    elif role == "Other Man":
                            other.append(line_spoken)
            except ValueError:
                    pass
    data.close()
except IOError:
    print("The datafile is missing!")

print (man)
print (other)

print ("Norwegian Blues XXXX",file=out) 是python 3.0用法,如果旧版本的python就是用

data.write(result)

需要注意的是,如果要写入文件,那么打开文件的时候要用w写入模式才行,读取的话是r。

对于try:except无法处理的情况时候,使用finally

finally是代表总会执行而不论try:except的报错

#!/usr/bin/python
# -*- coding: utf-8 -*-

man = []
other = []

try:
    data = open("sketch.txt")
    for each_line in data:
            try:
                    (role,line_spoken) = each_line.split(":",1)
                    line_spoken = line_spoken.strip()  #这里的解读是:这里不是直接处理line_spoken字符串,python 不会改变字符串,他会创建一个新的字符串出来然后执行类似如strip()的方法,然后将返回值赋值到原来的字符串
                    if role == "Man":
                            man.append(line_spoken)
                    elif role == "Other Man":
                            other.append(line_spoken)
            except ValueError:
                    pass
    data.close()
except IOError:
    print("The datafile is missing!")

finally:
    data.close()

详细打印捕获到的错误信息

#!/usr/bin/python
# -*- coding: utf-8 -*-


man = []
other = []

try:
    data = open("sketch.txt")
    for each_line in data:
            try:
                    (role,line_spoken) = each_line.split(":",1)
                    line_spoken = line_spoken.strip()  #这里的解读是:这里不是直接处理line_spoken字符串,python 不会改变字符串,他会创建一个新的字符串出来然后执行类似如strip()的方法,然后将返回值赋值到原来的字符串
                    if role == "Man":
                            man.append(line_spoken)
                    elif role == "Other Man":
                            other.append(line_spoken)
            except ValueError:
                    pass
    data.close()
except IOError as err:
    print("The datafile is missing!" + str(err)) # 捕获详细的错误信息,这个信息需要str格式化

finally:
    data.close()

例如详细的错误信息会显示: File error: XXXX NO such file or directory:"sketch.txt"

用with代替open

因为with 会自动关闭文件,而不用像open那样要在结尾是用close关闭

with open("its.txt","w") as data:
    print data
学习是用pickle

pickle的使用原因是它是python的专用持久存储方式,可以不用理会格式问题,直接保存,直接使用,这就是他的闪光之处。

用dump保存,用load恢复

#!/usr/bin/python
# -*- coding: utf-8 -*-

import pickle
with open("mydata.pickle","w") as mysavedata:
    pickle.dump([1,2,3],mysavedata)

a = []
with open("mydata.pickle","r") as myrestoredata:
    a = pickle.load(myrestoredata)
print a

原文链接:http://www.godblessyuan.com/2015/04/27/head_first_python_chapter_5_lea...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/37535.html

相关文章

  • head first python(第一章)–学习笔记

    摘要:第一章学习流程图安装这里是用的,除了之外,和都自带了,只是版本没有这么新。是区分大小写的。可以根据多维数组来理解。知识点补充里列表是打了激素的数组,意味着列表比数组更厉害,更好用。的语句的缩进是必须规范的。 head first python(第一章)--学习流程图 showImg(http://source1.godblessyuan.com/blog_headfirstpytho...

    TerryCai 评论0 收藏0
  • head first python(第五章)–学习笔记

    摘要:原来的顺序会丢失。原数据的顺序依然保留。方法串联第一个方法应用到数据中,然后再将处理好的数据应用到第二个方法中。例子函数串联每个函数会取得数据,对他完成某个操作,然后把转换后的数据继续向下传递到下一个函数。 showImg(http://source1.godblessyuan.com/blog_head_first_python_chapter_5_20150427.jpg); 1...

    aikin 评论0 收藏0
  • head first python(第三章)–学习笔记

    摘要:增加逻辑来处理首先通过观察方法对于不同的数据返回的值是不同的。所以需要加一些标记,标识数据不符合期望的格式时会出现数据无法正常访问时会出现。 1.介绍基础文件,输入,输出 open() 打开文件,一次传入一行数据,可以结合for循环和readline()来使用 close() 用来关闭open打开的文件 the_file = open(sketch.txt) the_file....

    Shisui 评论0 收藏0
  • head first python(第二章)–学习笔记

    摘要:第二章学习流程图函数转换为模块函数转换为模块后,就可以灵活的使用模块,方便代码分类,避免代码堆积在一个文件上。使用命令打包代码,生成发布包打包后会生成目录和文件发布后会多了目录和文件,这个是发布的生成的包和相关配置文件。 head first python(第二章)--学习流程图showImg(http://source1.godblessyuan.com/blog_head_firs...

    import. 评论0 收藏0
  • head first python(第六章)–学习笔记

    摘要:代码改为根据数据结构,第一个数据是名字,第二个是生日,第二个之后是成绩,所以分别将相关数据赋值到字典里面。是否知道何时使用列表而何时使用字典,这正式从好的程序员中区分出优秀程序员的一个标准。特定函数应用特定数据。更加正规的做法是建立类。 showImg(http://source1.godblessyuan.com/blog_head_first_python_chapter_6_20...

    piapia 评论0 收藏0

发表评论

0条评论

venmos

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<