• 文件操作


    文件操作

        r 只读
        w 写
        a 追加
        w模式  写的时候如果没有文件则会自动创建文件,有的话刚开始写入的时候会清空在写入
        r模式读取一行的时候,在末尾会默认跟一个
    (换行符)
    (回车)
        只读模式r 正常文本
        rb模式下,可以不指定打开文件的编码,但是在写文件的时候必须将字符串转化为utf-8的bytes数据
        只读rb 字节
        read() 默认全读完 可以指定读几个
        read(n) 读取n个字符,需要注意的是,如果再次读取的时候,那么会在当前位置接着读
        readline 一行一行读
        a 追加  在文本末尾追加
        r+ 读写模式  必须是先读在写 在末尾添加
        w+  写读模式  先将所有的内容清空,然后写入.最后读取.但是读取的内容是空的,不常用
        a+  追加写读 不论先读还是后读 都是读取不到数据的

    路径

        相对路径  绝对路径
        相对路径:同一个文件夹下的文件. 相对于当前这个程序所在的文件夹而言. 如果在同一个文件夹中. 则相对路径就是这个文件名. 如果在上一层文件夹. 则要../
    
        

    基本操作

    seek(0)移动光标到文件最开头
    seek(0,1) 两个参数的时候表示光标在当前位置
    seek(0,2)  表示光标在末尾
    seek(n)  光标移动到n的位置,注意,移动的单位是bytes,所有如果是UTF-8的中文部分药是3的倍数   
    flush  刷新
    tell() 查看光标位置
    truncate()  截断  将光标后面的删除
        
    深坑
    在r+模式下,如果读取了内容 .不论读取的内容多少.光标显示的是多少.自爱写入多少或者操作文件的时候都是在结尾进行操作
    

    修改文件

    文件修改:只能将文件的内容读取到内存中,将信息修改完毕,然后将源文件删除,将新文件的名字改成老文件的名字
    import os
    with open('s',mode='r',encoding='utf-8')as f1,
        open ('s_new',mode='w',encoding='utf-8')as f2:
        content=f1.read()
        content_new=content.replace("","")
        f2.write(content_new)
    os.remove('s')
    os.rename('s_new','s')
      

    整行操作

    整行操作
    import os
    with open('s',mode='r',encoding='utf-8')as f1,
        open ('s_new',mode='w',encoding='utf-8')as f2:
        for line in f1:
            new_line=line.replace('','')
            f2.write(new_line)
    os.remove('s')
    os.rename('s_new','s')
  • 相关阅读:
    【9408】数的计数
    【rlz03】十六进制转十进制
    【rlz02】二进制转十进制
    【rlz01】完全数
    【a101】高精度实数加法
    【9406】2的幂次方
    【42.86%】【Codeforces Round #380D】Sea Battle
    【26.83%】【Codeforces Round #380C】Road to Cinema
    【9932】饥饿的牛
    【9933】单词的划分
  • 原文地址:https://www.cnblogs.com/z1115230598/p/9877850.html
Copyright © 2020-2023  润新知