zoukankan      html  css  js  c++  java
  • python学习笔记三

    数据持久化

    import os

    from lcmnester import printList

    os.chdir("F:\book\python\headfirst python book&&code\code\chapter3")

    try:
            man=[]
            other=[]
            data=open("sketch.txt")
            for each_line in data:
                    try:
                            (role,line_spoken)=each_line.split(":",1)
                            line_spoken=line_spoken.strip()
                            if role=="Man":
                                    man.append(line_spoken)
                            elif role=="Other Man":
                                    other.append(line_spoken)
                    except ValueError:
                            pass
            data.close()

            print("Man saied:")
            printList(man,1,1)

            print("Other saied:")
            printList(other,1,1)
           
           
    except IOError:
            print("file is missing")

    try:
            man_out=open("data_out.txt","w")
            other_out=open("other_out.txt","w")
            #写到文件
            print(man,file=man_out)
            print(other,file=other_out)
    except IOError:
            print("File Error")
    finally:
            man_out.close()
            other_out.close()
     
     
    python中所有数值型都是不可变的,大部分数据类型都是不可变的,一般的改变都是改变副本。  不变的原因是因为python中都是引用,如果原地改变,就有可能导致所有引用的地方受影响。
     
     
    BIF:
    locals()://返回当前作用域的所有有效标识符
    str()://将对象转换为字符串
     
     
    with  open(file) as data:
            code...
     
     
    except IOError as err:
     
    上下文管理协议
     
     
    函数调用时,可以通过行参名=实参的方式来指定参数值,这样有多个缺省参数时,在调用时可以不用在意参数顺序
     
    pickle可以将数据对象持久化,持久化调用dump方式,载入调用load,如果是文件那边读写都需要用二进制模式打开
     
    import os
    import pickle
    from lcmnester import printList

    os.chdir("F:\book\python\headfirst python book&&code\code\chapter3")

    try:
            man=[]
            other=[]
            with open("sketch.txt") as data:
                    for each_line in data:
                            try:
                                    (role,line_spoken)=each_line.split(":",1)
                                    line_spoken=line_spoken.strip()
                                    if role=="Man":
                                            man.append(line_spoken)
                                    elif role=="Other Man":
                                            other.append(line_spoken)
                            except ValueError:
                                    pass

                    print("Man saied:")
                    printList(man,1,1)

                    print("Other saied:")
                    printList(other,1,1)
           
           
    except IOError as err:
            print("file is missing"+str(err))


    try:
            with open("data_out.txt","wb") as man_out,open("other_out.txt","wb") as other_out:
                    #printList(man,out=man_out)
                    #printList(other,out=other_out)
                    pickle.dump(man,man_out)
                    pickle.dump(other,other_out)
    except IOError:
            print("File Error")


    with open("data_out.txt","rb") as  read_file:
            man_say=pickle.load(read_file)

    print(man_say)
     
     
     
     
  • 相关阅读:
    红帽考试学习第六记
    红帽考试学习第五记
    红帽考试学习第四记
    红帽考试学习第三记
    C++ 学习笔记之---类和动态内存分配
    C++ 学习笔记之---类的自动转换
    C++ 学习笔记之---对象和类
    指针与引用的区别
    年轻人,往哪里走?
    最近感兴趣的东西
  • 原文地址:https://www.cnblogs.com/manziluo/p/5800215.html
Copyright © 2011-2022 走看看