zoukankan      html  css  js  c++  java
  • [ Python ] 文件的读写操作

     1. 文件读写操作

     读写文件是最常见的 IO 操作, Python 内置了读写文件的函数。
    在磁盘上读写文件的功能是由操作系统提供的,所以读写文件是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据,或者把数据写入这个文件对象。

    文件打开方式

    open(file, mode='r', buffering=None, encoding=None)
    
    	open 函数在打开一个文件
    	file: 打开文件的目录路径
    	mode: 打开文件的方式,读写;
    	buffering:  缓冲 buffering 大小
    	encoding: 以什么格式打开,常见:utf-8, GBK
    

     不同模式打开文件的完全列表:

     2. File 对象的属性

     一个文件被打开后, 你有一个file对象,你可以得到有关该文件的各种信息。
    以下是和file对象相关的所有属性的列表:

     

    f = open('test.txt', 'r', encoding='utf-8')
    print('文件名:', f.name)
    print('是否已关闭:', f.closed)
    print('访问模式:', f.mode)
    
    # 执行结果:
    # 文件名: test.txt
    # 是否已关闭: False
    # 访问模式:r
    

    3. 文件定位

     (1)tell

        获取被打开文件当前光标位置

    f = open('test.txt', 'r', encoding='utf-8')
    str1 = f.read(8)
    print(str1)
    print('光标当前位置:', f.tell())
    f.close()
    
    # 执行结果:
    # abcdefgh
    # 光标当前位置: 8
    

    (2)seek(offset [, from])

        改变当前光标的位置,offset 变量表示要移动的字节数
        from 变量指定开始移动字节的参考位置
            from=0 将文件的开头作为移动字节的参考
            from=1 使用当前的位置作为参考位置
            from=2 该文件的末尾将作为参考位置

    f = open('test.txt', 'r', encoding='utf-8')
    # read 方法读取的是字符数,而不是字节数
    str1 = f.read(8)
    print('【读取前8个字符:】',str1)
    print('【当前光标的位置(单位字节):】', f.tell())
    # 使用 seek 方法将光标一定到文件开始位置
    f.seek(0, 0)
    
    print('【当前光标的位置(单位字节):】', f.tell())
    print('【读取文件所有内容:】', f.read())
    
    # 执行结果:
    # 【读取前8个字符:】 哪里有彩虹告诉我
    #【当前光标的位置(单位字节):】24
    #【当前光标的位置(单位字节):】0
    #【读取文件所有内容:】哪里有彩虹告诉我能不能把我的愿望还给我
    

    对文件内容操作的方法对应的操作单位:

     根据各种模式,总结如下(+ 表示该模式能够使用的具体操作):

    参考文档:

      http://www.runoob.com/python/python-files-io.html

  • 相关阅读:
    hdu 4115 石头剪子布(2-sat问题)
    AFNetWorking POST Multi-Part Request 上传图片
    左右c++与java中国的垃圾问题的分析与解决
    ACM核武器
    MAX2323E
    cocos2d-x 发动机分析:程序如何开始和结束?
    STL 源代码分析 算法 stl_heap.h
    Android 4.4(KitKat)表格管理子系统
    Swift
    Swift
  • 原文地址:https://www.cnblogs.com/hukey/p/9253624.html
Copyright © 2011-2022 走看看