当前位置 : 主页 > 编程语言 > java >

python中的文件读写

来源:互联网 收集:自由互联 发布时间:2022-06-23
​ 读写文件是日常开发中最高频的操作,从文件中读取你需要处理的数据,根据处理逻辑编写代码,将处理好之后的结果保存到结果文件中。 读取数据通常有两种模式 第一种,读取用

读写文件是日常开发中最高频的操作,从文件中读取你需要处理的数据,根据处理逻辑编写代码,将处理好之后的结果保存到结果文件中。

读取数据通常有两种模式

  • 第一种,读取用户的键盘输入,使用场景,让用户输入yes或者no来控制程序的走向
  • 第二种,读取文件中的内容, 也是使用最广泛的场景
  • 通过input函数来读取键盘输入,用法如下


    >>> a = input()
    hello
    >>> a
    'hello'

    执行到input函数时,程序会先暂停,当用户输入内容,并按回车确认之后,自动将键盘输入的内容进行保存和记录。

    文件内容的读取, 首先需要通过内置函数open打开文件,用法如下

    >>> f = open('result.txt')
    >>> f
    <open file 'result.txt', mode 'r' at 0x7fbf5adaa540>

    返回值我们称之为文件句柄,可以看到在返回值中显示了mode值,这个值对应的是文件的打开模式,常用的有以下3种

  • r, 只读模式
  • w,写入模式, 原有的内容会被忽略
  • a,追加模式,在原有的内容上追加
  • 文件句柄本质是一个生成器,可以通过next函数依次打印每一行的内容

    >>> next(f)
    'ACTB\n'
    >>> next(f)
    'GAPDH\n'
    >>> next(f)
    'PGK1\n'
    >>> next(f)
    'PPIA\n'

    当然也可以循环打印,写法如下


    >>> for line in f:
    ... print(line)
    ...

    在python中,还提供了一系列的read方法来读取文件,用法如下


    # read方法一次读取所有行
    # 返回值为一个字符串
    >>> f = open('result.txt')
    >>> f.read()
    'A\nB\nC\nD\nE\nF\n'
    >>>
    >>>
    # readline方法依次返回文件的每一行
    >>> f = open('result.txt')
    >>> f.readline()
    'A\n'
    >>> f.readline()
    'B\n'
    >>>
    >>>
    # readlines方法一次读取所有行
    # 返回值为列表
    >>> f = open('result.txt')
    >>> f.readlines()
    ['A\n', 'B\n', 'C\n', 'D\n', 'E\n', 'F\n']

    对于文件句柄而言,打开之后,必须关闭,写法如下


    >>> f = open('result.txt')
    >>> f.readlines()
    ['A\n', 'B\n', 'C\n', 'D\n', 'E\n', 'F\n']
    >>> f.close()

    文件的写入是类似的,将文件的打开模式替换为w, 并调用write方法


    >>> f = open('result.txt', 'w')
    >>> f.write('hello\n')
    >>> f.close()


    write方法一次写入一个字符串,如果要写入多行,可以多次调用write方法,注意在字符串末尾添加换行符来正确显示。

    为了更加安全方便的进行文件读写,python提供了with语句,写法如下

    # 循环读取文件
    # 每次读取一行
    with open('result.txt') as f:
    for line in f:
    print(line)




    # 写入文件
    # 遍历需要输出的内容列表
    # 每次输出一行
    with open('result.txt', 'w') as f:
    for line in list:
    f.write(line)

    with语句会自动执行关闭句柄的操作,这样简化了代码,不要每次都去写关闭句柄的操作。

    ·end·


    python中的文件读写_文件句柄

    一个只分享干货的

    生信公众号




    上一篇:Java注解详解以及如何实现自定义注解
    下一篇:没有了
    网友评论