号外:《黑客攻防入门学习课程》现已推出,喜欢的朋友请关注!!!

Python3 文件管理操作

python 泰泰 1039℃ 0评论

【前言】

在实际的编程当中,经常要将一些处理好的数据,写入到特定的文件中,供我们后期的查阅,最常见的就是各种日志文件。
Python 已集成了文件操作的方法,这里只讲解最常使用的一些操作技能,完全操作指南,您可以查看相应的文件。

基本输入/输出(I/O)

在正式开始讲文件操作时,先来讲两个比较重要的操作:  输入(input) 与  输出( output ) 。
输入: 检测键盘的输入,常用于检测用户的数据输入。
输出: 将处理好的数据进行输出,常见的是将数据显示到屏幕上。
Python 提供的输入函数有: input( )   和  raw_input( )  这两个,但是后者只允许在 Python 2.X 版本中使用。
Python 提供的输出函数有: print( )

标准输入

语法格式:

Hint_information:用户输入前的提示信息(可缺省)。

实例如下:

运行程序,此时程序会要求用户输入信息,这里输入: hello world !

实例输出:

请输入:hello world !
用户输入了: hello world !

标准输出

语法格式:

由于经常使用,这里就不在叙述了。

打开/创建文件

在对文件的操作中,Python 已提供了很多基本而又实用的相关函数和方法。通常在操作文件时,都会创建一个文件对象,后面的操作都会使用该对象来进行操作。
Python 提供了 open( ) 函数来打开或创建一个文件,基本格式如下:

参数说明:
• file_object : 创建一个编辑文件的对象。
• 文件名: 要访问/创建的文件名(需跟上后缀名),文件名前可以跟上绝对路径,只填写文件名时,默认使用相对路径。
• 访问模式: 用于控制文件的编辑模式,如:读取、写入、读写….(具体看控制模式表),该参数可缺省,默认为只读( r )模式。
• 缓存控制: 用于控制编辑文件时是否开启文件缓存,缓存空间大小。 具体为: 【0】:不缓存    【1】:缓存    【 >1】: 自定义缓存空间(就是该值的大小)   【< 0 】: 使用系统默认大小的缓存空间。

以下是Python提供的文件编辑模式:

模式:权限:含义:组织形式:
"r"(只读)--默认打开已存在文件,用于只读文本文件
"w"(只写)创建或重建文件,用于只写文本文件
"a"(追加)在文件尾追加数据,若文件不存在则创建只写文本文件
"r+"(可读可写)打开已存在文件,用于读/写文本文件
"w+"(可读可写)创建或重建文件,用于写/写文本文件
"a+"(可读可写)在文件尾追加数据,若文件不存在则创建读/写文本文件
"rb"(只读二进制)打开已存在文件,用于只读二进制文件
"wb"(只写二进制)创建或重建文件,用于只写二进制文件
"ab"(追加二进制)在文件尾追加数据,若文件不存在则创建只写二进制文件
"rb+"(可读可写二进制)打开已存在文件,用于读/写二进制文件
"wb+"(可读可写二进制)创建或重建文件,用于写/写二进制文件
"ab+"(可读可写二进制)在文件尾追加数据,若文件不存在则创建读/写二进制文件

常用文件编辑模式一览表:
模式rr+ww+aa+
创建
覆盖
指针在开始
指着在结尾

关闭文件

Python 提供 close( ) 的方法,来关闭已经打来了的文件。程序在执行 close( )方法时,会刷新缓冲区里还没有写入文件中的内容,并将该内容写入到文件当中,然后执行文件的关闭操作。文件在关闭后便不能在往里面进行写入、读取等操作。
基本格式:

注意:在创建文件对象后,当该对象所指向的文件在未被关闭时,而又重新指向了另外一个文件变量时,前一个文件将会被自动关闭。所以在每次操作完文件后,最好使用close( ) 方法进行文件的关闭。

以下是具体的,文件打开、关闭实例:

运行程序:

此时在 D 盘的根目录下,已经创建了一个 aa.txt 的文本文件。

注意:在上面指定的是D盘,你也可以指定其它的目录,在指定目录时,各级目录使用的是“/”分隔符,这要区别于windowns下的“\”,这点应引起注意!当然你也可以不指定目录,这时Python使用的就是当前(相对路径)目录了。

读/写文件

Python 为用户提供了一系列的文件操作方法,使用这些方法可以使得我们在操作文时件更加简便、轻松。下面就来看看如何使用read()和write()方法来读取和写入文件。

write( )方法

write( )方法:是Python提供的一个内容写入方法,使用该方法可以将任意字符串写入一个已经打开了的文件中。
语法格式:

注:write()方法不会在字符串的结尾添加换行符(‘\n’)。

实例如下:

运行实例程序:

此时,打开D盘下的 aa.txt 文件,其中就会多了“Hello World!”

read( )方法

write( )方法:是Python提供的一个文件内容读取方法,使用该方法可以从已经打开了的文件中读取想要的内容。
语法格式:

参数说明:
count: 为想要读取的内容数量(单位为:字节),如果缺省该参数,Python将会以贪婪模式进行读取,进最大能力读出更多的文件内容。

注:使用读取或写入方法时,都应注意程序当前的指针位置,这些方法操作的内容都是向后进行读取或写入的。

实例如下:
注意:本实例依赖于前面的 aa.txt 文件,请确保文件中有相关内容。

实例输出:

Hel
lo World!

分析:可见程序在执行第一次read()后,指针就位移到了第一个“ l ”的后面,后面在进行相关的操作时,是以当前的指针位置为起点再进行计算的了。

文件对象属性

当一个文件被程序打开后,也就拥有了一个file属性,使用属性可以得到有关该文件的各种信息,属性的出现使得用户可以更好的编辑和管理文件。

Python提供的获取文件对象属性常用方法有:

属性:描述:
file_object.name返回文件名
file_opject.mode返回文件编辑的模式
file_object.closed返回文件当前编辑状态 (True : 文件关闭;False:文件编辑中)

实例如下:

实例输出:

r+
D:/aa.txt
False
True

PS: 文件对象的属性不仅可以在文件编辑当中进行调用,同样可以在文件关闭后,一样可以进行调用,系统反馈回来的都是当前文件对象所拥有的属性。

文件指针

文件指针,即文件当前所在的编辑位置。在编辑文件中,我们经常需要指针所在的位置,然后再进行写入或读取操作。下面就来介绍文件指针的操作。

tell()方法:返回当前编辑文件中,指针所在的位置。 注:该方法只能在文件编辑中使用。

seek(offset [,whence])方法:修改文件指针的位置。
offset:表示要将指针移动的字节数。
whence:指定文件指针移动前的起始参考位置。( 设为:“0”,表示将文件的开始处作为移动前参考位置;“1”:将当前指针位置作为移动前参考位置; “2”:文件末尾作为移动前参考位置。)

实例如下:
注:同样使用上面生成的文件,实验前注意文件用有相关内容。

运行输出:

当前指针位置: 3 ,读取到的内容为: Hel
重新设置后的指针位置: 4 ,读取到的新内容为: Hell

PS:在进行本实例时,一定要注意编辑文件的模式。不同的编辑模式,很大程度上影响着本实例的实现。

重命名和删除文件

在对文件进行重命名或删除等操作时,需要用到Python提供的OS模块,通过该模块里的一些方法即可实现这些操作。
该模块还提供了很多常用操作,例如:目录的新建、删除等操作,后门我们再专门学习这个OS 模块。

 

重命名文件

重命名一个文件,使用到的是OS模块中的 rename()方法:
语法格式:

提示:参数可以是单文件名,或者带有路径的文件名,不同的情况下,不同的使用方法。

实例如下:

运行实例:

此时打开D盘,可以看到目录下原来的 aa.txt 文本文件,已经被重命名为 new_aa.txt 文件。

删除文件

删除文件,使用到的是OS模块中的 remove()方法:
语法格式:

实例如下:
效果:删除 D盘 下的 new_aa.txt 文本文件。

运行实例:

此时,打开 D盘 可以看打原来的 new_aa.txt 的文本文件已经被删除了。

PS:以上的这两个实例,在执行中一定要注意文件的所在位置,如果所要操作的文件在当前工程中,此时可以省略声明文件的所在目录,直接使用文件名即可,Python会自行查找得到;如果您所要编辑的文件不在当前工程或环境变量声明的目录下,此时一定要使用绝对路径进行声明,否则Python会报错,提示无法找到文件。

以下是编辑文件中的一些常用方法:

方法:功能:
file.read([count])读取文件内容
file.write( string )向文件写入内容
file.flush()将缓冲区的内容写入文件中
file.tell()查看当前指针位置
file.seek(offset [,whence])重新设定指针的位置
file.next()返回文件当前行的所有内容
file.readline([size])读取一整行内容,包括 "\n" 字符
file.readlines([sizehint])读取文件所有行内容,直至遇到EOF结束
file.fileno()返回一个整型的文件描述符(一般用于底层I/O)
file.isatty()检查一个文件是否已经连接到终端设备。
file.truncate([size])从文件中截取指定的数据内容(可设置大小)
file.writelines(sequence)向文件中写入一个序列字符串列表内容

 

更多学习教程请访问:Python3 学习教程目录索引

转载请注明:泰泰博客 » Python3 文件管理操作

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址(选填)