zoukankan      html  css  js  c++  java
  • Python 文件读写

    Python 文件读写

    读写文件使用内建函数open()write()

    read()方法

    file = open('a.txt','r')  #打开文件'a.txt',返回文件对象file
    #print(type(file))
    data = file.read()        #调用read方法读整个文件内容,返回字符串
    #print(type(data))
    file.close()              #关闭打开的文件
    print(data)               #显示文件内容
    
    

    上述代码首先用以“只读”的方式打开文件“a.txt”,此时file是一个文件对象。
    read([size=-1])方法读取整个文件内容,字符串data包含了文件的整个内容。read()方法有一个可选参数size,默认是-1。当指定的size>0read()方法读取size个字节;如果size<0或没有指定,则读取文件直至结尾(EOF)。
    close()方法关闭open()打开的文件。使用with方法,默认自动关闭文件。

    with open('a.txt') as file:
        data = file.read()
        print(data)
    

    readline()方法

    readline([size=-1])方法从当前指针位置读取直至行尾。size含义同前。如果size>行字节数,会产生一个回车(' ')

    with open('a.txt') as file:
        data = file.readline()    #读取第一行
        print(data)
    
    with open('a.txt') as file:
        data = file.readline(5)    #读取第一行的前5个字符
        print(data)
    
    with open('a.txt') as file:
        file.seek(5)              
        data = file.readline()    #从第一行的第6个字符读取到行尾
        print(data)
    

    通过line()方法遍历文件内容如下。

    with open('a.txt') as file:
        line = file.readline()    #读取第一行,返回字符串line
        while line:               #如果line非空
            print(line)
            line = file.readline()
    

    打印每一行内容:

    with open('a.txt') as file:
        for line in file:
            print(line,end='')
    

    readlines()方法

    readlines([size=-1])方法读取整个文件内容,存入一个列表中,每一行的内容后加入一个换行符' '。
    如果size<第1行字节数读取第一行,第1行字节数<size<第2行字节数读取第1、2行。依此类推

    with open('a.txt') as file:
        data = file.readlines()
        print(data)
        #print(type(data))       #<class 'list'>
    

    文件对象的方法

    方法 解释
    file=open('a.txt',[options]) 打开文件
    file.close('a.txt',[options]) 关闭打开的文件
    file.read([size=-1]) 从文件读取 size 个字节。当未给定 size 或给定负值的时候, 读取剩余的所有字节, 然后作为字符串返回。如果打开模式有'b',按字节读取
    file.readline([size=-1]) 从文件中读取并返回一行(包括行结束符), 或返回最大 size
    file.readlines([size=-1]) 把文件每一行作为一个list的一个成员,并返回这个list。其实它的内部是通过循环调用readline()来实现的。如果提供size参数,size是表示读取内容的总长,也就是说可能只读到文件的一部分。
    file.fileno() 返回一个长整型的“文件标签”
    file.flush() 把缓冲区的内容写入硬盘
    file.isatty() 文件是否是一个终端设备文件(unix系统中的)
    file.next() 返回下一行,并将文件操作标记位移到下一行。把一个file用于for … in file这样的语句时,就是调用next()函数来实现遍历的
    file.tell() 返回文件操作标记的当前位置,以文件的开头为原点
    file.seek(off, whence=0) 将文件打操作标记移到offset的位置。这个offset一般是相对于文件的开头来计算的,一般为正数。但如果提供了whence参数就不一定了,whence可以为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。
    file.truncate(size=file.tell()) 截取文件到最大 size 字节, 默认为当前文件位置
    file.write(bytes('test',encoding='utf-8')) 向文件写入字符串(会覆盖原有数据)
    file.writelines(seq) 向文件写入字符串序列 seq ; seq 应该是一个返回字符串的可迭代对象
    file.readlines(sizhint=0) 读取文件的所有行并作为一个列表返回(包含所有的行结束符)

    参考资料

    [1] 菜鸟学院
    [2] 51jb
    [3] Mr. Pan
    [4] 调整Markdown表格宽度

  • 相关阅读:
    LeetCode:35. 搜索插入位置
    LeetCode:34. 在排序数组中查找元素的第一个和最后一个位置
    LeetCode:33. 搜索旋转排序数组
    LeetCode:31. 下一个排列
    LeetCode:23. 合并K个排序链表
    LeetCode:21. 合并两个有序链表
    JDE910笔记1--基础介绍及配置[转]
    JDE910笔记2--OMW项目建立及简单使用[转]
    活动目录—远程安装额外域控制器[转]
    java入门第五步之数据库项目实战【转】
  • 原文地址:https://www.cnblogs.com/ourweiguan/p/10478306.html
Copyright © 2011-2022 走看看