zoukankan      html  css  js  c++  java
  • day08-2018-10--26 文件处理

                                                     文件基本操作

    with open('stu_score.txt','r',encoding='utf-8') as f:
        print(f.read(),end='')
                #
                #
                #
                #
                #
        f.seek(0)
        print(f.readline())
    #
        f.seek(0)
        print(f.readlines())
    #['一
    ', '二
    ', '三
    ', '四
    ', '五
    ']
        print(f.readable())
    #True
    
        print(f.writable())
    #False
        print(f.name)
    #stu_score.txt
        print(f.encoding)
    #utf-8

                                                      光标的操作

    #梦想是有……实力的人才能谈论的现实。
    #Didn't double diligence, neither can nor a genius.
    with open('stu_score.txt','r+',encoding='utf-8') as f:
        print(f.tell())
        print(f.read(2))#打开方式是文本模式,所以是读取2个字符
        #梦想
        #
        f.seek(0)#光标归0
        #0
        f.seek(6)#移动了6个字节,也就是2(utf-8,3个字节表示一个汉字)个中文字符
        print(f.tell())
        #6
        print(f.readline())
        #是……有实力的人才能谈论的现实。
        print(f.tell())
        #55
        f.seek(61)
        print(f.readline())
        # double diligence, neither can nor a genius.
        f.seek(0,2)#到末尾
        print(f.tell())#
        print(f.readline())#读不出什么了

                                              文件修改

    #文件修改
    # 他很有钱
    # 他很帅
    # 但他依然很孤独
    # 因为他明明可以靠脸吃饭,却在学python
    # 方式一:将硬盘存放的该文件的内容全部加载到内存,
    # 在内存中是可以修改的,修改完毕后,再由内存覆盖到硬盘(word,vim,nodpad++等编辑器)
    import os
    with open('stu_score.txt','r',encoding='utf-8') as read_f, 
            open('stu_score.txt.bak','w',encoding='utf-8') as write_f:
        data=read_f.read()#全部读入内存,如果文件很大,会很卡
        data=data.replace('','')#在内存中完成修改
        write_f.write(data)#一次性写入新文件
    os.remove('stu_score.txt')
    os.rename('stu_score.txt.bak','stu_score.txt')
    #我很有钱
    #我很帅
    #但我依然很孤独
    #因为我明明可以靠脸吃饭,却在学python
    
    # 方式二:将硬盘存放的该文件的内容一行一行地读入内存,修改完毕就写入新文件,最后用新文件覆盖源文件
    import os
    with open('stu_score.txt','r',encoding='utf-8') as read_f, 
            open('stu_score.txt.bak','w',encoding='utf-8') as write_f:
        for line in read_f:
            line=line.replace('','')
            write_f.write(line)
    os.remove('stu_score.txt')
    os.rename('stu_score.txt.bak','stu_score.txt')
    # 你很有钱
    # 你很帅
    # 但你依然很孤独
    # 因为你明明可以靠脸吃饭,却在学python
  • 相关阅读:
    【POJ3358】Period of an Infinite Binary Expansion-欧拉定理+数论好题
    【POJ3696】The Luckiest Number-欧拉定理+快速幂
    【POJ3090】Visible Lattice Points-欧拉函数应用
    【POJ3090】Visible Lattice Points-欧拉函数应用
    【POJ2891】Strange Way to Express Integers-解一元线性同余方程组
    【POJ2891】Strange Way to Express Integers-解一元线性同余方程组
    【POJ2429】GCD & LCM Inverse-Pollard-rho分解+枚举
    【POJ2429】GCD & LCM Inverse-Pollard-rho分解+枚举
    【POJ1811】Prime Test-Miller-Rabin素数测试+Pollard-rho大数分解
    deleted
  • 原文地址:https://www.cnblogs.com/VastTry/p/9857221.html
Copyright © 2011-2022 走看看