zoukankan      html  css  js  c++  java
  • 55-文件的高级应用

    文件的高级应用

    一.可读,可写

    1.1 r+t:可读,可写

    #'wt'
    with open('草稿.txt','wt',encoding='utf-8') as fw:
        print(fw.readable())
        print(fw.writable())
    
    # False
    # True
    

    1.2 w+t:可写,可读

    #'wt'
    with open('草稿.txt','w+t',encoding='utf-8') as fw:
        print(fw.readable())
        print(fw.writable())
    
    # True
    # True
    

    1.3 a+t:可追加,可读

    #'wt'
    with open('草稿.txt','r+t',encoding='utf-8') as fw:
        print(fw.readable())
        print(fw.writable())
    
    # True
    # True
    

    二.文件内指针移动

    假设我们需要在文件内容中间的某一行增加内容,如果使用基础的r/w/a模式实现是非常困难的,因此,我们需要在对文件的指针进行移动

    with open('草稿.txt','r+t',encoding='utf-8') as fr:
        fr.readline()
        fr.write('是的这就是草稿')  #写在文件的最后一行
    

    硬盘是哪个没有修改这么一说,只有覆盖,即新的内容覆盖旧的内容

    2.1 seek()

    seek(offset,whence): offset代表文件指针的偏移量,单位是字节

    # seek()
    with open('草稿.txt', 'rt', encoding='utf-8') as fr:
        print(f"fr.seek(4, 0): {fr.seek(3, 0)}")  # 0相当于文件头开始;1相当于当前文件所在位置;2相当于文件末尾
        
    # fr.seek(0,2)  # 切换到文件末尾
    # fr.seek(4, 0): 3
    

    2.2 tell()

    tell():每次统计都是从文件开头到当前指针的所在位置

    #tell()
    with open('草稿.txt', 'rt', encoding='utf-8') as fr:
        fr.seek(4,0)
        print(f"fr.tell(): {fr.tell()}") 
        
    # fr.tell(): 4
    

    2.3 read(n)

    只有在模式下的read(n),n代表的是字符个数,除此之外,其他但凡涉及文件指针的都是字节个数

    #read
    with open('草稿.txt','rt',encoding='utf-8') as fr:
        print(f'fr.read(10):{fr.read(10)}')
        
    # fr.read(10):是的这就是草稿
    

    2.4truncate(n)

    truncate(n)是截断工具,所以文件的打开方式必须可写,但是不可以用w或w+的方式打开,因为那样就直接被清空文件了,所以truncate()要在r+或a或a+等模式下测试效果。他的参照物永远都是文件头。并且truncate()不加参数,相当于清空文件

    #truncate
    with open('草稿.txt','r+t',encoding='utf-8') as fr:
        fr.truncate(3)
    
  • 相关阅读:
    JS开发技巧
    Git push 常见用法
    关闭浏览器标签
    vue 样式穿透 watch深度监听
    Git Commit Template 提交模板
    常用git stash命令:
    Windows下安装及使用NVM
    JS正则表达式
    js转码
    多行文本溢出显示省略号(…)全攻略
  • 原文地址:https://www.cnblogs.com/LWX-YEER/p/11283243.html
Copyright © 2011-2022 走看看