python的文件操作方法,python文件操作步骤

  python的文件操作方法,python文件操作步骤

  文件操作是我们开发中不可或缺的需求。下面这篇文章主要介绍Python基本文件操作的相关信息,通过示例代码非常详细的介绍。有需要的朋友可以参考一下。

  一、前言二。创建和打开文件1。打开不存在的文件时,首先创建该文件。2.以二进制形式打开文件。3.打开文件时指定编码方法。3.关闭文件。4.打开文件时使用with语句。5.写入文件内容。6.阅读文件。1.读取指定的字符。2.读一行。3.阅读所有摘要行。

  

目录

  在Python中,文件对象是内置的。使用file对象时,首先需要通过内置的open()方法创建一个file对象,然后通过这个对象提供的方法做一些基本的文件操作。例如,可以使用file对象的write()方法写入文件,使用close()方法关闭文件。下面描述如何应用Python的文件对象进行基本的文件操作。

  

一、前言

  在Python中,要操作一个文件,需要创建或打开指定的文件,并创建一个file对象。这可以通过内置的open()函数来实现。open()函数的基本语法格式如下:

  file=open(文件名[,模式[,缓冲]])

  参数说明:

  File: created file对象filename:要创建或打开一个文件,需要用单引号或双引号将它括起来。如果要打开的文件与当前文件在同一个目录下,直接写文件名即可,否则需要指定完整路径。例如,要在当前路径中打开名为status.txt的文件,可以使用“status.txt”。Mode:可选参数,用于指定文件的打开方式。其参数值如下所示。默认的打开模式是只读的(即R)。该值指示R以只读方式打开文件。指向文件的指针将放在文件的开头。Rb以二进制格式打开文件,采用只读模式。指向文件的指针将放在文件的开头。一般用于非文本文件,如照片、音乐等。r打开文件后,可以读取文件内容,也可以写入新内容覆盖原有内容(从文件开头开始)。rb以二进制格式打开文件,采用写模式。指向文件的指针将放在文件的开头。一般用于非文本文件,如图片、声音等。w以只写模式打开文件wb以二进制格式打开文件,采用只写模式。一般用于非文本文件,如图片、声音等。w打开文件后,先清空原始内容,使其成为空文件。wb对这个空文件有读写权限以二进制格式打开文件,采用读写方式。一般用于非文本文件,如图片、声音等。以追加模式打开文件。如果文件已经存在,文件指针会放在文件的末尾(即新内容会写在已有内容之后);否则,创建一个新文件写入ab。以二进制格式打开文件,并采用追加模式。如果文件已经存在,文件指针将放在文件的末尾(即新的内容将写在现有内容之后),否则,将创建一个新的文件来写一个读写模式的打开文件。如果文件已经存在,文件指针会放在文件的末尾(即新内容会写在已有内容之后);否则,创建一个新文件写入ab。以二进制格式打开文件,并采用追加模式。如果文件已经存在,文件指针会放在文件的末尾(即新的内容会写在已有内容之后),否则会创建一个新的。

  文件用于写入

  

  

1.打开一个不存在的文件时先创建该文件

  在默认的情况下,使用open()函数打开一个不存在的文件,会抛出如图所示的异常。

  

  要解决上图所示的错误,主要有以下两种方法:

  

  • 在当前目录下(即与执行的文件相同的目录)创建一个名称为 status.txt 的文件。
  • 在调用open()函数时,指定mode的参数值为w、w+、a、a+。这样,当要打开的文件不存在时,就可以创建新的文件了。

  

  

2.以二进制形式打开文件

  使用open()函数不仅可以文本的形式打开文本文件,而且可以以二进制形式打开非文本文件,如图片、音频文件等。例如,创建一个名称为picture.jpg的图片文件(如图所示),并且应用open()函数以二进制方式打开该文件。

  

  以二进制方式打开该文件,并输出创建的对象对的代码如下:

  

file = open("picture.jpg", "rb")

  print(file)

  

  执行上面代码,将显示如图所示的结果:

  

  从上图中可看出,创建的是一个BufferedReader对象。对于该对象生成后,可以再应用其他的第三方模块进行处理。例如,上面的BufferedReader对象是通过打开图片文件实现的。那么就可以将其传入到第三期的图像处理库PIL的Image模块的open()方法中,以便于对图像进行处理(如调整大小等)

  

  

3.打开文件时指定编码方式

  在使用open()函数打开文件时,默认采用GBK编码,当被打开的文件不是GBK编码时,将抛出异常,如图所示:

  

  解决该问题的方法有两种,一种直接修改文件的编码,另外一种是在打开文件时,直接指定使用的编码方式。推荐采用后一种方法。下面重点介绍如何在打开文件时指定编码方式。

  在调用open()函数时,通过添加encoding=‘utf-8’参数即可实现编码指定为UTF-8。如果想指定其他编码可以将单引号中的内容替换为想要指定的编码即可。

  例如,打开采用UTF-8编码保存的notice.txt文件,可以使用下面的代码:

  

file = open("notice.txt", "r", encoding=utf-8)

  

  

  

三、关闭文件

  打开文件后,需要及时关闭,以免对文件造成不必要的破坏。关闭文件可以使用文件对象close()方法实现。close()方法的语法格式如下:

  

file.close() # 关闭文件

  

  

说明: close()方法先刷新缓冲区中还没写入的信息,然后再关闭文件,这样可以将没有写入到文件的内容写入到文件中。在关闭文件后,便不能再进行写入操作了。

  

  

  

四、打开文件时使用with语句

  打开文件后,要及时将其关闭,如果忘记关闭可能会带来意想不到的问题。另外如果在打开文件时抛出异常,那么将导致文件不能及时关闭。为了更好地避免此类事情的发生,可以使用Python提供with语句。从而实现在处理文件时,无论是否抛出异常,都能保障with语句执行完毕后关闭已经打开的文件。with语句的基本语法格式如下:

  

with expression as target:

   with-body

  

  参数说明:

  expression :用于指定一个表达式,这里可以是打开文件的函数open()。
target:用于指定一个变量,并且将expression 的结果保存到这个变量中。
with-body:用于指定with语句体,其中可以是执行with语句相关联的一些操作语句。如果不想执行语句,可以直接使用pass语句来代替。

  例如打开文件的语句,修改后的代码如下:

  

print("\n", "=" * 10, "Python经典应用", "=" * 10)

  with open("massage.txt", "w") as file: # 创建或打开保存Python经典应用信息的文件

   pass

  print("\n 即将显示……\n")

  

  

  

五、写入文件内容

  在前面的内容中,虽然创建并打开了一个文件,但是该文件中并没有任何内容,它的大小是0kb。Python中的文件对象提供了write()方法,可以像文件中写入内容。write()方法的语法格式如下:

  

file.write(string)

  

  参数说明:

  

  • file:打开的文件对象
  • string:要写入的字符串

  

注意: 在调用write()方法向文件写入内容的前提是,打开文件时,指定的打开模式为w(可写)或者a(追加),否则,将抛出如图所示的异常:

  

  

  

六、读取文件

  在Python中打开文件后,除了可以向其写入或追加内容,还可以读取文件中的内容。读取文件内容主要分为以下几种情况。

  

  

1.读取指定字符

  文件对象提供了read()方法读取指定个数的字符,其语法格式如下:

  

file.read([size])

  

  参数说明:

  

  • file:打开的文件对象
  • size:可选参数,用于指定要读取的字符个数,如果省略则一次性读取所有内容。

  

注意: 在调用read()方法读取文件内容的前提是,打开文件时,指定的模式为r(只读)或者r+(读写),否则,将抛出如图所示的异常。

  

  例如,读取massage.txt中的前9字符串,可以使用下列代码:

  

with open("massage.txt", "r", encoding=utf-8) as file: # 打开文件

   string = file.read(9) # 读取前9字符串

   print(string)

  

  例如,massage.txt文件的内容为:

  

Python的强度,强度到你无法想象!!!

  

  那么执行以上代码,将显示以下内容:

  

  使用read([size])方法读取文件时,是从文件的开头读取部分内容,可以先使用文件对象的seek()方法将文件的指针移动到新的位置,然后在应用read([size])方法读取,seek()方法基本语法如下:

  

file.seek(offset[,whence])

  

  参数说明:

  

  • file:表示已经打开的文件对象。
  • offset:用于指定移动的字符个数,其具体位置与whence有关。
  • whence:用于指定从什么位置开始计算。值为0表示从文件头开始计算,值为1表示从当前位置计算,值为2表示从文件尾开始计算,默认为0。

  

注意: 对于 whence参数,如果在打开文件时,没有使用b模式(即rb),那么只允许从文件头开始计算相对位置,从文件尾计算时就会引发如图所示的异常:

  

  例如,想要从文件的第6个字符开始读取2个字符,可以使用下列代码:

  

with open("message.txt", "r") as file: # 打开文件

   file.seek(5) # 移动指针到新的位置

   string = file.read(2) # 读取2个字符

   print(string)

  

  如果message.txt文件中内容为:

  

123456789

  

  那么执行上面代码,将显示以下结果:

  

  

说明: 在使用seek()方法时,offset的值是按照一个汉字占两个字符、英文和数字点占一个字符计算的,这个与read(size)方法不同。

  

  

  

2.读取一行

  在使用read()方法读取文件时,如果文件很大,一次读取完全部内容到内存,容易造成年内存不足,所以采取逐行读取。文件对象提供了readline()方法用于每次读取一行数据。readline()方法的语法格式如下:

  

file.readline()

  

  其中,file为打开的文件对象,同read()方法一样,打开文件时,指定的模式为r(只读)或者r+(读写)。

  

print("\n", "=" * 20, "Python经典应用", "=" * 20)

  with open("message.txt", "r", encoding="utf-8") as file:

   number = 0 # 记录行号

   while True:

   number += 1

   line = file.readline()

   if line == "":

   break

   print(number, line, end="\n")

  print("\n ", "=" * 20, "over" * 20, "\n")

  

  如果message.txt文件中内容为下图所示:

  

  执行上面代码,将显示以下内容:

  

  

  

3.读取全部行

  读取全部行的作用同调用read()方法时不指定size类似,只不过读取全部行时,返回的是一个字符串列表,每个元素为文件的一行内容。读取全部行,使用的是文件对象的readlines()方法,其语法格式如下:

  

file.readlines()

  

  其中,file为打开的文件对象,同read()方法一样,打开文件时,指定的模式为r(只读)或者r+(读写)。

  例如,通过readlines()方法读取message.txt文件中所有内容,并输出读取内容结果,代码如下:

  

print("\n", "=" * 20, "Python经典应用", "=" * 20)

  with open("message.txt", "r", encoding="utf-8") as file:

   message = file.readlines() # 读取全部信息

   print(message)

   print("\n ", "=" * 20, "over", "=" * 20, "\n")

  

  执行上面代码,将显示以下内容:

  

  从该运行结果中可以看出readlines()方法的返回值为一个字符串列表。在这个字符串列表中,每个元素为一行内容。如果文件较大时,采用这种方法输出读取的文件内容会很慢。这时可以将列表的内容逐行输出,例如,代码可以修改为以下内容:

  

print("\n", "=" * 20, "Python经典应用", "=" * 20)

  with open("message.txt", "r", encoding="utf-8") as file:

   messageall = file.readlines() # 读取全部信息

   for message in messageall:

   print(message) # 输出一条信息

  print("\n ", "=" * 20, "over", "=" * 20, "\n")

  

  执行上面代码,将显示以下内容:

  

  

  

总结

  到此这篇关于Python基本文件操作实用指南的文章就介绍到这了,更多相关Python文件操作内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!

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

相关文章阅读

  • python文件路径操作方法总结怎么写,python文件路径操作方法总结表,python文件路径操作方法总结
  • python文件路径操作方法总结怎么写,python文件路径操作方法总结图
  • ,,PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
  • python文件加密存储,python通过文件读写,复制图片
  • python文件打开的默认方式是只读,python以只读方式打开文本文件的参数
  • python文件读写,python将数据写入文件和从文件读取
  • 怎么把python文件变成可执行exe,python将py文件编译成exe文件
  • 打开python文件的两种方式,python文件是怎么打开
  • python文件操作write,python文件write函数的用法
  • linux如何编译python文件,linux上python编译器
  • python打不开文件怎么回事,做好的python文件直接打开怎么不能用
  • python中绝对路径,python文件相对路径怎么写
  • python对文件的操作方法有哪些,python文件的基本操作
  • python关于文件的题目,python文件概述
  • python文件可以直接运行吗,python直接运行
  • 留言与评论(共有 条评论)
       
    验证码: