Python 从入门到实战30(高级文件的操作)

        我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。

        上篇文章我们讨论了操作目录的相关知识。今天我们将学习一下高级文件操作的相关知识。

        python 内置的os 模块除了可以对目录进行操作,还可以进行一些文件的高级操作。

os 提供的与文件相关的函数说明:

函数

说明

access(path,accessmode)

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

chmod(path,mode)

修改path指定文件的权限

remove(path)

删除path指定的文件路径

rename(src,dst)

将文件或者目录修改为dst

stat(path)

返回path指定的文件信息

startfile(path,operation)

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

1、删除文件

python 中删除文件可以使用os模块提供的函数。

语法:os.remove(path)

其中path -----是要删除的文件路径,可以是相对路径或者绝对路径

举例说明;

import os   #导入模块
def main():
    if os.path.exists("test_fold.txt"):   #判断是否存在文件
        os.remove("test_fold.txt")    #存在文件执行删除
    else:
        print("要删除的文件不存在!")

如上执行,因为开始没有文件,数据结果:


若是我们新建一个再执行删除,

import os   #导入模块
def main():
    test_fold = 'test_fold.txt'
    if not os.path.exists(test_fold):  #文件不存在,先新建文件
        open(test_fold,'w')
    else:
        print("文件已经存在")
    if os.path.exists(test_fold):
        os.remove(test_fold)
        print("删除文件了")
    else:
        print("要删除的文件不存在!")

输出结果:删除文件了

2、重命名文件和目录

重命名文件或者目录使用os模块提供的rename()函数,

语法参考:os.rename(src,dst)

其中 src -----要重命名的原文件或者目录

dst-----重命名后的文件或者目录

1)重命名文件举例

test_demo.txt  我们开始是由这个文件的。将其进行重命名:

import os   #导入模块
def main():
    src = r'D:\dewi\project2024\myListPractice\pythonProject1\test_demo.txt'
    dst = r'D:\dewi\project2024\myListPractice\pythonProject1\test_demo1.txt'
    if os.path.exists(src):
        os.rename(src,dst)   #存在文件就重命名
        print("文件命名完毕")
    else:
        print("文件不存在")

输出参考:文件命名完毕

2)目录的命名

也是使用os.rename()函数,举例说明:

import os   #导入模块
def main():
    src = 'prc'
    dst = "practice"
    if os.path.exists(src):
        os.rename(src,dst)
    else:
        print(f"文件:{src}","不存在")

第一次执行:如下图,看到文件夹被改变为practice

再次执行:就会提示文件不存在,因为已经被修改了

3、获取文件基本信息

在计算机上创建文件后,该文件会包含一些信息。如文件最后一次访问时间、最后一次修改时间、文件大小等。这些信息可以使用os模块中的stat()函数来获取。

os.stat(path)

参数说明:path 是要获取的文件基本信息的文件路径,可以是相对路径,也可以是绝对路径;

此函数的返回值是一个对象,其具有下表所示的属性,通过访问这些属性,就可以获取指定文件的基本信息。

 stat()函数返回对象的常用属性:

属性

说明

属性

说明

st_mode

保护模式

st_dev

设备名

st_ino

索引号

st_uid

用户 ID

st_nlink

硬链接号(被连接数目)

st_gid

组 ID

st_size

文件大小,以字节为单位

st_atime

最后一次访问时间

st_mtime

文件最后一次修改时间

st_ctime

最后一次状态变化的时间,操作系统不会,该属性对应的结果也不同,例如在 Windows 操作系统下返回的就是文件的创建时间

举例说明:

import os   #导入模块
def main():
    fileinfo = os.stat("test_data.txt")#获取文件基本信息
    #下面输出文件基本信息
    print("索引号:", fileinfo.st_ino)
    print("设备名称:", fileinfo.st_dev)
    print("文件大小:", fileinfo.st_size, "字节")
    print("最后一次访问时间:", fileinfo.st_atime)
    print("最后一次修改时间:", fileinfo.st_mtime)
    print("最后一次状态变化的时间:", fileinfo.st_ctime)

输出结果参考:

查看上面的输出结果,看到时间有点看不懂,可以转换一下:

#时间转换函数:def formatOuttime(longtime):
    '''
   
时间进行格式化
    :param longtime:
要格式化的时间
    :return:
返回日常使用的时间
    '''
   
import time
    return time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(longtime))


def main():
    fileinfo = os.stat("test_data.txt")#获取文件基本信息
    #下面输出文件基本信息
    print("索引号:", fileinfo.st_ino)
    print("设备名称:", fileinfo.st_dev)
    print("文件大小:", fileinfo.st_size, "字节")
    print("最后一次访问时间:", formatOuttime(fileinfo.st_atime))#调用函数进行时间格式化输出
    print("最后一次修改时间:", fileinfo.st_mtime)
    print("最后一次状态变化的时间:", fileinfo.st_ctime)

输出结果参考:

4、补充一个小知识-输出带有字符串的变量

#输出带有字符串的变量方法:
#1、使用f - string
name = "Alice"
print(f"Hello, {name}!")

# 2、使用str.format() 方法
name = "xiaomi"
print("Hello, {}!".format(name))

#3、在字符串中使用 + 连接符来拼接变量
name = "小明"
print("Hello, " + name + "!")

#4、使用 % 操作符 (较老的方式,Python 2风格)
name = "xiaohua"
print("Hello, %s!" % name)

输出参考:

Hello, Alice!

Hello, xiaomi!

Hello, 小明!

Hello, xiaohua!

今天先写学习到这里了,每天进步一点点。明天也要加油啊!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

立黄昏粥可温

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值