美文网首页
017_文件基本操作

017_文件基本操作

作者: Nzkalhbxx | 来源:发表于2017-10-17 18:55 被阅读0次
    # __author__:Nzkalhbxx
    # __date__:2017/10/16
    import time
    # 要想操作文件, 就必须创建一个文件对象, 通过操作文件对象对文件进行操作
    # open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True):
    # 创建一个可读文件对象, 读模式下只能操作读操作, 不能使用写操作, 写模式下类推
    # 对文件的基本操作有三种: r(read)读操作/ w(write)写操作/ a(append)追加操作
    # 文件的另外三种拓展操作: r+ (read&write), w+ (write&read), a+ (append&read)
    # r+模式下可读可写, 但是写操作不再会清空数据, 而是在数据的末尾写入数据,无论当前文件指针指向哪里
    # w+模式下可读可写, 操作之前依然会清空数据, 之后进行操作
    # a+模式下可追加可读
    """
    """
    fileReadObj = open("citys.txt", 'r', encoding="utf8")
    fileReadObj2 = open("citys.txt", 'r', encoding="utf8")
    fileAppendObj = open("citys.txt", 'a', encoding="utf8")
    # 特别注意: 只要写文件的文件对象一经创建, 无论有无执行写操作, 都会对文件进行清空内容操作
    # fileWriteObj = open("citys.txt", 'w', encoding="utf8")
    print(type(fileReadObj))
    print(type(fileReadObj2))
    # print(type(fileWriteObj))
    # 同一个文件可以被拥有多个句柄, 而每个句柄是不一样的, 文件可以同时进行读操作, 互不影响, 但不可以同一时刻进行写操作
    print(fileReadObj.fileno())
    print(fileReadObj2.fileno())
    # print(fileWriteObj.fileno())
    
    """ 由Demo1可以看出, 文件对象对文件的读操作是有指针指向的, 每次读操作完成时, 都会设置并记录当前文件对象读指针的指向,
    下次再进行读操作时便会由上次读指针指向的位置开始读取数据, 注意: read()不加参数是默认一次性读完, 后续再读时,
    指针已经指向文件末尾, 无法再获取数据了, 而写操作的原理是一样的, 每个写操作的文件对象都有一个写指针, 每写一次,
    指针便自动向后移动, 后续再进行写操作时, 便从记录的写指针所在位置往后续写, 如果要进行写操作的文件不存在, Python会
    创建一个同名的空文件, 然后进行操作, 对于a(append)追加操作, 以此类推"""
    fileReadObj.read()
    fileReadObj2.read()
    maxNum = fileReadObj.tell() if fileReadObj.tell() > fileReadObj2.tell() else fileReadObj2.tell()
    print(maxNum)
    fileReadObj.seek(0)
    fileReadObj2.seek(0)
    num = 0
    while num <= maxNum / 3:   # Demo1
        # 二者输出内容一致, 说明同一个文件同时可以有多个文件对象进行读操作, 互不影响
        print(fileReadObj.read(1).strip())
        print(fileReadObj2.read(1).strip())
        num += 1
    fileReadObj.close()
    fileReadObj2.close()
    fileAppendObj.close()
    
    文件 运行结果部分截图

    相关文章

      网友评论

          本文标题:017_文件基本操作

          本文链接:https://www.haomeiwen.com/subject/hzxjuxtx.html