Python读取文件的操作方法,python中的文件读取方法

  Python读取文件的操作方法,python中的文件读取方法

  本文主要介绍如何用Python读出一个文件的内容,并通过实例进行了详细说明。有兴趣的朋友可以跟边肖学习一下。

  00-1010文件对象的模式读取方法使用Read()函数一次性读取文件的所有内容,使用readline()函数读取文件的内容,使用mode()、name()和closed()函数逐行读取文件的内容来演示用open()实际读取文件在上一章中,我们学习了如何使用with open()函数创建文件,以及如何在文件中写入内容。今天,让我们学习如何读出文件的内容。

  

目录

  引入R(read的缩写)读取文件(返回的string类型)读取rb二进制形式的文件注意:我们是用string类型来读写文件的,那么不能写集合、元组、列表等吗?严格来说,这是不可能的,但我们可以将数据类型转换为字符串。写的时候可以转换成字符串类型,读的时候可以转换成原来的数据类型。嘿嘿.

  

文件读取的模式

  方法参数介绍示例read没有一次性取出文件的所有内容,返回了整个文件字符串f.read()readlines没有将文件内容的每一行剪切成列表进行读取,返回了文件列表f.readlines()readline没有读取文件的每一行,一次返回一行。返回文件中的一行f.readline()mode没有open()函数的mode属性,调用f.mode()name,无返回文件名,f.name()closed,无bool类型即可返回当前文件模式。调用closed()函数了解文件是否关闭。

  

文件对象的读取方法

  注意:下面演示的终端Terminal是由read_test.py文件路径下启动的ipython执行的。

  这是我们读取预先创建的read_test.py文件的脚本。

  导入os.path

  current_path=os.getcwd()

  file=open(read_test.py , r )

  data=file.read()

  file.close()

  打印(数据)

  打印( ************************* )

  打印(类型(数据))

  read_test.py文件包含以下内容

  #编码:utf-8

  导入os.path

  current_path=os.getcwd()

  file _ path=OS . path . join(current _ path, test.txt )

  file_test=open(文件路径, w ,编码=utf-8 )

  File_test.write(人生苦短,我用不了Python )

  file_test.read()

  file_test.close()

  终端终端执行效果如下:

  

使用 read() 函数一次性读取文件全部内容

  >使用 readlines() 函数 读取文件内容

  继续上面的脚本我们使用 readlines() 函数

  

file = open(read_test.py, r)

  data = file.readlines()

  file.close()

  print(data)

  print(***************************)

  print(type(data))

  

  Terminal 终端 执行的效果如下图:

  

  注意:区别于 print(data) ,直接打印 data ,显示效果如下:

  

  这里我们发现每一行和空行都会有一个换行符,如果我们需要读取、处理每一行的内容,空行与换行符会给我们造成很大的困扰。这里我们就可以利用到字符串的 strip() 函数加上 for 循环 就可以处理了。

  

_data = []

  for i in data:

   temp = i.strip()

   if temp != :

   _data.append(temp)

  _data

  # >>> 执行结果如下图:

  

  

  

  

使用 readline() 函数 逐行读取文件内容

  上文我们提到 readline() 函数 会针对文件每一行内容进行读取,一次返回一行;如果想要读取下一行内容,就需要再一次执行 readline() 函数;下面我们来看一下 演示案例:

  

file = open(read_test.py, r)

  data = file.readline()

  data

  # >>> 执行结果如下:

  # >>> # coding:utf-8\n

  data = file.readline()

  data

  # >>> 执行结果如下:

  # >>> \n

  

  如下图:

  

  

  

mode()、name()、closed() 函数演示

  见下图:

  

  

  

文件读取小实战

  还记得我们上一章节的文件的创建于写入里面的实战小案例么?今天我们就在上一章节的实战小案例上进行一个补充,拓展一下我们关于读取文件的功能(函数)

  在进行 文件读取小实战之前,我们先来了解一下 wiht open() 函数,如下。

  

  

with open() 函数

  前文我们了解到,如果想要读取一个文件就需要先使用 open() 函数,打开文件并赋予其打开的模式,最后必须要要操作 close() 函数;这就是一个完整的读取文件内容的一个步骤,但是这个步骤过于繁琐不说,在文件不存在或者没有执行 close() 函数的情况下,还会抛出一个IOError的错误,并且给出错误码和详细的信息告诉你文件不存在,示例如下:

  

  每次如果都按照如上最终方案去写的话,实在太繁琐。Python引入了with语句来自动帮我们调用close()方法

  重点:!!!with 的作用就是自动调用close()方法 !!!

  

# 使用方法:

  with open(/path/to/file, r) as f:

   print(f.read())

  # >>> 相较于单独使用 open() 函数,是不是代码更佳简洁,并且不必调用f.close()方法了呢?

  

  

  

利用with open() 函数读取文件的小实战

  

import os

  def create_package(path):

   if os.path.exists(path):

   raise Exception(%s 已经存在,不可创建 % path)

   else:

   os.mkdir(path)

   init_path = os.path.join(path, __init__.py)

   file_init = open(init_path, w, encoding=utf-8)

   file_init.write(# coding:utf-8\n)

   file_init.close()

  class Open(object):

   def __init__(self, path, mode=w, is_return=True): # 这里的 is_return 定义的是换行的意思,结合下文的 message 理解

   self.path = path

   self.mode = mode

   self.is_return = is_return

   def write(self, message):

   file_test = open(self.path, mode=self.mode)

   if self.is_return: # 如果返回 Ture 则 在 message 后,增加换行符

   message = %s\n % message

   file_test.write(message)

   file_test.close()

   def read(self, is_strip=True): # is_strip 用于判断每一行结尾的换行符将其去掉

   result = [] # 定义一个空列表,用来读取每一行内容

   with open(self.path, mode=self.mode) as file:

   data = file.readlines() # 文件对象读取文件内容一但脱离 with open() 函数,就会自动执行 close() 函数 关闭文件

   for line in data: # for循环遍历data ,若读取的那一行内容不为空且如果存在\n符,去掉\n符然后加入result列表

   if is_strip: # is_strip 默认就是 True

   temp = line.strip()

   if temp != :

   result.append(temp)

   else: # 如果读取的那一行不为空,加入result列表

   if line != :

   result.append(line)

   return result

  if __name__ == __main__:

   current_path = os.getcwd()

   open_path = os.path.join(current_path, test.txt)

   open_test = Open(open_path, mode=r)

   data = open_test.read()

   # data = open_test.read(is_strip=False)

   print(data)

  

  执行结果如下:

  

  以上就是Python学习之文件的读取详解的详细内容,更多关于Python文件读取的资料请关注盛行IT软件开发工作室其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: