Python的高级文件操作

106 篇文章 1 订阅
101 篇文章 0 订阅

Python的高级文件操作


一、前言

Python内置的os模块除了可以目录进行操作,还可以对文件进行一些高级操作,具体操作如下表:

函数

说明

access(path,accessmode)

获取对文件是否有指定的访问权(读取/写入/执行权限)。accessmode的值是R_OK(读取)、W_OK(写入)或F_OK(存在)。如果有指定的权限,则返回1,否则返回0

chmod(path,mode)

修改path指定文件的访问权限

remove(path)

删除path指定的文件路径

rename(src,dst)

将文件或目录src重命名为dst

stat(path)

返回path指定文件的信息

startfile(path[,operation])

使用关联的应用程序打开path指定的文件


二、删除文件

Python没有内置删除文件的函数,但是在内置的os模块中提供了删除文件的函数remove(),该函数的基本语法格式如下:

os.remove(path)

其中,path为要删除的文件路径,可以使用相对路径,也可以使用绝对路径。

例如,要删除当前工作目录下的mrsoft.txt文件,可以使用下面代码:

import os
os.remove("mrsoft.txt")

执行上面的代码后,如果在当前工作目录下存在mrsoft.txt文件,即可将其删除,否则将显示如图所示异常。
在这里插入图片描述
为了解决以上异常,可以在删除文件时,先判断文件是否存在,只有存在时才能执行删除操作。具体代码如下:

import os			 # 导入os模块
path = "mrsoft.txt"	 # 要删除的文件
if os.path.exists(path):	# 判断文件是否存在
	os.remove(path)		# 删除文件
	print("文件删除完毕!")
else:
	print("文件不存在!")

执行上面代码,如果mrsoft.txt不存在,则显示以下内容:

文件不存在!

否则将显示以下内容,同时文件被删除:

文件删除完毕!

三、重命名文件和目录

os模块提供了重命名文件和目录函数rename(),如果指定的路径时文件,则重命名文件;如果是指定的路径是目录,则重命名目录。rename()函数基本语法格式:

os.rename(src,dst)

其中,src用于指定要进行重命名的目录或文件;dst用于指定重命名后的目录或文件。

同删除文件一样,在进行文件或目录重命名时,如果指定的目录或文件不存在,也将抛出FileNotFoundError异常,所以在进行文件或目录重命名时,也建议先判断文件或目录是否存在,只有存在时才进行重名操作。

例如,想要将“D:PythonCodehelloworld.py”文件重名为“D:PythonCodemr.py”可以使用下面代码:

import os			 # 导入os模块
src = "D:\Python\Code\01\helloworld.py"	 # 要重名命名的文件
dst = "D:\Python\Code\01\mr.py" # 重名命名后的文件
if os.path.exists(src):	# 判断文件是否存在
	os.rename(src,dst)	# 重命名文件
	print("文件重命名完毕!")
else:
	print("文件不存在!")

执行上面代码,如果“D:PythonCodehelloworld.py”文件不存在,则显示以下内容:

文件不存在!

否则将显示以下内容,同时文件被重命名:

文件重命名完毕!

使用rename()函数重命名目录与命名文件相同,只要把原来文件路径替换为目录即可,例如想要将当前目录下的Code目录重名命为test,可以使用下面代码:

import os			 # 导入os模块
src = "Code"	 # 要重名命名的目录
dst = "test" # 重名命名后的目录
if os.path.exists(src):	# 判断文件是否存在
	os.rename(src,dst)	# 重命名文件
	print("文件重命名完毕!")
else:
	print("文件不存在!")

注意: 在使用rename()函数重命名目录时,只能修改最后一级的目录名称,否则将抛出如图所示异常:在这里插入图片描述


四、获取文件基本信息

在计算机上创建文件后,该文件本身就会包含一些信息。例如,文件的最后一次访问时间,最后一次修改时间、文件的大小等基本信息。通过os模块的stat()函数可以获取到文件的这些基本信息。stat()函数的基本语法格式如下:

os.stat(path)

其中,path为要获取文件基本信息的文件路径,可以是相对路径,也可以是绝对路径。

stat()函数的返回值是一个对象,该对象包含如下表的属性。通过访问这些属性可以获取文件的基本信息。

属性

说明

st_mode

保护模式

st_ino

索引号

st_nlink

硬件接号(被连接数目)

st_size

文件大小,单位为字节

st_mtime

最后一次修改时间

st_dev

设备名

st_uid

用户ID

st_gid

组ID

st_atime

最后一次访问的时间

st_ctime

最后一次状态的时间(系统不同返回结果也不同,例如,在Windows操作系统下返回的是文件的创建时间)

例如,获取message.txt文件的路径、大小和最后一次修改的时间,代码如下:

import os

if os.path.exists("message.txt"):
    fileinfo = os.stat("message.txt")
    print("完整路径:", os.path.abspath("message.txt"))
    print("文件大小:", fileinfo.st_size, "字节")
    print("最后一次修改时间", fileinfo.st_mtime)

执行上面代码,将显示如下结果:
在这里插入图片描述


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值