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!

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/434044.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文学会 Java 8 的Predicates

​ 博客主页: 南来_北往 系列专栏:Spring Boot实战 前言 在这份详细的指南中,您将了解 Java Predicates,这是 Java 8 中一个新颖且有用的特性。本文解释了 Java Predicates 是什么以及如何在各种情况下使用它们。 在这份详尽的指南中…

游戏开发2025年最新版——八股文面试题(unity,虚幻,cocos都适用)

1.静态合批与动态合批的原理是什么?有什么限制条件?为什么?对CPU和GPU产生的影响分别是什么? 原理:Unity运行时可以将一些物体进行合并,从而用一个描绘调用来渲染他们,就是一个drawcall批次。 限…

信安 实验1 用Wireshark分析典型TCP/IP体系中的协议

我发现了有些人喜欢静静看博客不聊天呐, 但是ta会点赞。 这样的人呢帅气低调有内涵, 美丽大方很优雅。 说的就是你, 不用再怀疑哦 实验1 用Wireshark分析典型TCP/IP体系中的协议 实验目的 通过Wireshark软件分析典型网络协议数据包&a…

javaweb 实验3

我发现了有些人喜欢静静看博客不聊天呐, 但是ta会点赞。 这样的人呢帅气低调有内涵, 美丽大方很优雅。 说的就是你, 不用再怀疑哦 实验三 Web基础-JavaScript 目的: 1、 理解和掌握Javascript基本语法 2、 掌握JavaScr…

html+css+js实现Pagination 分页

效果图 HTML部分 <body><div class"pagination"><button class"prev"><</button><ul><li class"active">1</li><li>2</li><li>3</li><li>4</li><li>5…

敏捷开发与DevOps的有机结合

在当今快速变化的技术环境中&#xff0c;软件开发团队面临着前所未有的挑战。客户需求不断变化&#xff0c;市场竞争激烈&#xff0c;技术更新速度加快&#xff0c;这些因素都要求开发团队具备高度的敏捷性和高效的运营能力。为了应对这些挑战&#xff0c;越来越多的企业选择将…

024.PL-SQL进阶—游标

课 程 推 荐我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448;入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448;虚 拟 环 境 搭 建 &#xff1a;&#x1…

JAVA红娘婚恋相亲交友系统源码全面解析

在数字化时代&#xff0c;红娘婚恋相亲交友系统成为了连接单身男女的重要桥梁。JAVA作为一种流行的编程语言&#xff0c;为开发这样的系统提供了强大的支持。编辑h17711347205以下是对JAVA红娘婚恋相亲交友系统源码的全面解析&#xff0c;以及三段示例代码的展示。 系统概述 …

【Gitee自动化测试4】本地Git分支的增删查,本地Git分支中文件的增删查,本地文件的暂存/提交,本地分支的推送

一、流程 本地创建分支&#xff0c;设定连接什么云分支本地创建文件&#xff0c;暂存、提交–>本地分支本地分支推送所有修改–>云仓库 二、分支概念 在版本回退里&#xff0c;每次提交&#xff0c;git都把它们串成一条时间线&#xff0c;这条时间线可以理解为是一个分…

Verilog基础:时序调度中的竞争(四)(描述时序逻辑时使用非阻塞赋值)

相关阅读 Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm1001.2014.3001.5482 作为一个硬件描述语言&#xff0c;Verilog HDL常常需要使用语句描述并行执行的电路&#xff0c;但其实在仿真器的底层&#xff0c;这些并行执行的语句是有先后顺序…

论文阅读:LM-Cocktail: Resilient Tuning of Language Models via Model Merging

论文链接 代码链接 Abstract 预训练的语言模型不断进行微调&#xff0c;以更好地支持下游应用。然而&#xff0c;此操作可能会导致目标领域之外的通用任务的性能显著下降。为了克服这个问题&#xff0c;我们提出了LM Cocktail&#xff0c;它使微调后的模型在总体上保持弹性。…

文章解读与仿真程序复现思路——中国电机工程学报EI\CSCD\北大核心《考虑异步区域调频资源互济的电能、惯性与一次调频联合优化出清模型》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

Spring Boot助力:小徐影院管理系统

第二章开发技术介绍 2.1相关技术 小徐影城管理系统是在Java MySQL开发环境的基础上开发的。Java是一种服务器端脚本语言&#xff0c;易于学习&#xff0c;实用且面向用户。全球超过35&#xff05;的Java驱动的互联网站点使用Java。MySQL是一个数据库管理系统&#xff0c;因为它…

python学习第十二节:python开发图形界面

python学习第十二节&#xff1a;python开发图形界面 创建一个窗口实例化窗口对象调用窗口设置窗口大小设置窗口的标题设置窗口图标否能够改变窗口设置窗口的背景 创建容器组件容器组件的介绍组件参数的介绍label标签label添加标签控件 label添加标签定位label的relief参数label…

无人机之模拟图传篇

无人机的模拟图传技术是一种通过模拟信号传输图像数据的方式&#xff0c;它通常使用无线电模块或专用通信协议进行数据传输。 一、基本原理 模拟图传技术的工作原理是将摄像头或相机设备采集到的图像数据&#xff0c;通过模拟信号的形式进行传输。这些模拟信号在传输过程中可能…

9.26 Buu俩题解

[CISCN2019 华东北赛区]Web2 看wp写完之后写的 知识点 存储型XSS与过滤绕过sql注入 题解 好几个页面&#xff0c;存在登录框可以注册&#xff0c;存在管理员页面(admin.php) ->既然存在管理员页面&#xff0c;且直接访问admin.php提示我们 说明存在身份验证&#xff0…

安全教育培训小程序系统开发制作方案

安全教育培训小程序系统是为了提高公众的安全意识&#xff0c;普及安全知识&#xff0c;通过微信小程序的方式提供安全教育培训服务&#xff0c;帮助用户了解并掌握必要的安全防范措施。 一、目标用户 企业员工&#xff1a;各岗位员工&#xff0c;特别是IT部门、财务、行政等对…

你们猜!吊打Oracle的国产数据库有哪几家?

今天闲暇之余看到某vx群聊得很火热&#xff0c;这个群聚集了国内不少数据库大咖&#xff0c;其中大家聊到国产数据库遥遥领先了。 最开始主要是一个朋友提到目前很多企业拍板的人并不懂数据库&#xff0c;甚至很多知名数据库都没听过。 然后大家就开始聊到国产数据库了&#xf…

《微信小程序实战(4) · 地图导航功能》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

Python(六)-拆包,交换变量名,lambda

目录 拆包 交换变量值 引用 lambda函数 lambda实例 字典的lambda 推导式 列表推导式 列表推导式if条件判断 for循环嵌套列表推导式 字典推导式 集合推导式 拆包 看一下在Python程序中的拆包&#xff1a;把组合形成的元组形式的数据&#xff0c;拆分出单个元素内容…