• 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')的时候一定要小心。

     

       

       

  • 相关阅读:
    C# 操作配置文件
    C# Excel操作类
    没有找到 mspdb100.dll 的解决办法
    工厂方法模式
    .Net互操作2
    The certificate used to sign “AppName” has either expired or has been revoked. An updated certificate is required to sign and install the application解决
    手机抓包xcode自带命令行工具配合wireshark实现
    expecting SSH2_MSG_KEX_ECDH_REPLY ssh_dispatch_run_fatal问题解决
    使用ssh-keygen设置ssh无密码登录
    远程复制文件到服务器
  • 原文地址:https://www.cnblogs.com/gengcx/p/6713646.html
Copyright © 2020-2023  润新知