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

        我们经常需要从文件中读取数据,因此学会文件的读取很重要,下面来介绍一下文件的读取工作:

        1.读取整个文件

        pi_digits.text

        3.1415926535

          8979323846

          2643383279

        单纯的读取一个文件,我们首先要打开文件,然后读取里面的内容,使用read()方法,读取文件的全部内容,然后把读取出来的内容进行赋给一个变量;如下所示:

        file_reader.py

        with open('pi_digits.text') as file_object:

            contents = file_object.read()

            print(type(contents))

        print(contents)

         输出结果如下:

        3.1415926535
        8979323846
        2643383279

          <class 'str'>

        还有一种方法读取文件,我们来看看,直接打开然后进行读取,不使用with语句:

        f = open('pi_digits.text')
      contents = f.read()
      print(contents)
      f.close()

        这种方法直接读取文件,但是要记得关闭文件,我们要知道,我们操作的是什么,目的是什么,如果我们只是单纯的读取文件的内容,而不去修改它,那么就单纯使用open()方法,不用第二参数即可:

        第一种方法中,with open('pi_digits.text') as file_object:做了大量的工作。我们先来看看open()。要以任何方式使用文件——哪怕仅仅打印其内容,都得先打开文件,这样才能够访问它,而且第一种方法读取之后,赋给变量contents,变量contents是一个字符串,不是列表,也不是元祖之类的,而只是单纯的字符串情况;第二种方法必须记得关闭文件。

        文件的相对路径和绝对路径

        这两种方法的区别:with在不再需要访问文件后将其关闭。在这个程序中,注意到我们调用了open(),但没有调用close();我们也可以调用open()和close()来打开和关闭文件(第二种方法),但这样做时,如果程序存在bug,导致close()语句未执行,文件将不会关闭。这看似微不足道,但未妥善地关闭文件可能会导致数据丢失或受损。如果在程序中过早地调用close(),我们会发现需要使用文件时它已关闭(无法访问),这会导致更多的错误。并非任何情况下都能轻松地确定文件的恰当时机,但通过使用前面所示的结构,可让Python去确定:我们只管打开文件,并在需要时使用它,Python自会在合适的时候自动将其关闭。

        所以这两种方法都是可以的,只是with打开的方式更安全一些,不需要我们去确定什么时候关闭文件,而open()直接打开的话就需要我们自己去确定什么时候要关闭文件,要使用close()方法关闭文件。

        2.逐行读取

        f = open("pi_digits.text")
      for line in f:
        print(line.strip())
      f.close()

        我们使用open()和close()方式打开文件,这种情况下,我们一定要记得关闭文件,以免文件遭到破坏,我们打开文件,

        也可以使用with语句打开文件,这种方法让我们避免使用close()语句,系统会自动帮助我们在合适的时机关闭文件,也不用担心异常的问题。

        with open('pi_digits.text') as f:
        for line in f:
          print(line)
        我们使用with语句打开这个文件,并命名为f,然后遍历这个打开的文件,输出每一行。这样我们就可以实现按行读取的方法。

        3.把文件读取到一个列表中

        with open('pi_digits.text') as f:
        lines = f.readlines()
        print(lines)

        把文件读取到一个列表中,readlines()方法是文件中读取每一行,并将其存储到一个列表中;接下来,该列表被存储到变量lines中;读取文件得到一个列表的方法,我们读取这个文件,并且得到一个列表

        f = open("pi_digits.text")
      lines = f.readlines()
      print(lines)

        f.close()

        我们在直接使用open()打开文件的时候,一定要记得关闭文件,使用close()方法把文件关闭,这点可能经常会一不小心忘记,只记得打开文件,但是没有关闭文件。

    二、写入文件

        保存数据的最简单的方式之一是将其写入到文件中。

        write_message.py

        with open('programming.text','w') as f:

        f.write("I love programming")

        在这个示例中,调用open()时提供了两个实参。第一个实参也是要打开的文件的名称;第二个实参("w")告诉Python,我们要以写入模式打开这个文件。打开文件时,可指定读取模式('r')、写入模式('w')、附加模式('a')或者让我们能够读取和写入文件的模式('r+').如果我们省略了模式实参,Python将以默认的只读模式打开文件

        读取和写入文件有两种方法,一种是with语句打开文件;另一种是open()和close()结合使用打开和读取文件。

        我们要知道我们打开文件是做什么如果只是单纯的打开和读取文件,只需要open()即可;要是写入的话,就需要指定第二参数。默认省略参数的情况下是只读模式的。

        写入的方式

        (1)写入模式('r')

        (2)附加模式('a')

      with open("pi_digits.text",'a') as f:
         f.write("I love you,too,Really ")
           f.write("I also love finding meanting in large datasets. ")
         f.write("I love to start to make success.")

        写入模式('r')和附加模式('a')都是向文件中写入内容,不同的是写入模式要覆盖之前文件里面的内容。

        如果我们要写入的文件不存在,函数open()将自动创建它。然而,以写入('w')模式打开文件时千万要小心,因为如果指定的文件已经存在,Python

    将在返回文件对象前清空该文件。所以使用写入模式('w')的时候一定要小心。

     

       

       

  • 相关阅读:
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
  • 原文地址:https://www.cnblogs.com/gengcx/p/6713646.html
Copyright © 2011-2022 走看看