Python3笔记--文件操作

emmm,直接开始罢...

  1. 打开文件

    open(path,flag[,encoding][,error])
    path:要打开文件的路径
    flag:打开方式
        r  只读
        r+ 读写
        rb 以二进制格式打开一个文件用于只读
        w  写入,先删除原内容,再写入,没有此文件则创建
        w+ 读写,先删除原内容,再写入,没有此文件则创建
        wb 以二进制格式打开一个文件用于写入,可以用于从网络下载流媒体文件
        a  写入追加,没有此文件则创建
        a+ 读写,追加,没有此文件则创建
    encoding:编码方式
    errors:错误处理

     

  2. 读文件内容

    f = open('好吗好的.txt','r',encoding='utf-8')
    
    #1、读取文件全部内容
    #str1=f.read()
    #print(str1)
    
    #2、读取指定字符数
    str2=f.read(100)
    print('------start-------')
    print(str2)
    print('------end-------')
    
    ------start-------
    好吗好的
    
    作  者:大 冰
    出 版 人:刘清华
    责任编辑:薛 健 刘诗哲
    监  制:毛闽峰 李 娜
    策划编辑:李 娜
    文案编辑:王 静
    营销编辑:杜 莎 贾竹婷 雷清清
    本书由天津博集新媒科技有限
    ------end-------
    
    #3、读取一行,包括'\n'字符
    str3=f.readline()
    print('------start-------')
    print(str3)
    print('------end-------')
    
    ------start-------
    公司授权亚马逊全球范围发行
    
    ------end-------
    
    #读取所有行并返回列表,列表中每个元素以'\n'结尾
    #list1=f.readlines()
    #print(list1)
    
    #循环遍历文件对象来读取文件中的每一行
    for line in f:
        print(line, end='')
    #修改描述符的位置
    f.seek(0)
    
    #注意:描述符会随着文件的读取而往后退

     

  3. 写内容到文件

    程序将信息写入缓冲区,在刷新缓冲区之后才会将内容写入文件
    刷新缓冲区几种方式..
    1、用flush()函数
    2、当内存塞满
    3、关闭文件时
    path="ProudOfYou_1.txt"
    f=open(path,"w")
    f.write("sunck is a good man")
    f.flush()
    #这方法能成功写入文件,以防后面代码出错而导致内容没有写入,但是最好要关闭文件
    path="ProudOfYou_2.txt"
    f=open(path,"w")
    f.write("sunck is a good man")
    f.close()
    #可以正常写入

     

  4. 关闭文件

    f.close()

     

  5. 完整的过程

    try:
        f1=open('好吗好的.txt',"r",encoding="utf-8")
        print(f1.read())
    finally:
        if f1:
            f1.close()

     

  6. 另一种方法(建议使用这种方法来读写文件)

    with open(path,"r",encoding="utf-8") as f2:
        print(f2.read())
    #这个打开文件的方法,最后会自动关闭文件,省事~

     

  7. list-tuple-dict-set的文件操作

    import pickle
    #使用pickle模块你可以把Python对象直接保存到文件
    myList=[1,2,3,4,5,"sunck is a good man"]
    path="file3.txt"
    #写入
    f=open(path,"wb")#因为myList不是字符串所以要以wb方式写入
    pickle.dump(myList,f)
    f.close()
    #读取
    f1=open(path,"rb")
    tempList=pickle.load(f1)
    print(tempList)
    print(type(tempList))
    f1.close()
    #[1, 2, 3, 4, 5, 'sunck is a good man']
    #<class 'list'>
    #其他序列的保存方式亦是类似,就不一一展示了。

     

     

posted @ 2019-04-20 00:34  byadmin  阅读(185)  评论(0)    收藏  举报