Python实验报告(第10章)
实验10:文件及目录操作
一、实验目的和要求
1、掌握基本文件操作(创建、打开、关闭、写入);
2、掌握目录操作的基本操作(创建、删除、遍历);
3、了解高级文件操作(删除文件、获取文件基本信息)。
二、实验环境
软件版本:Python 3.10 64_bit
三、实验过程
1、实例01:创建并打开记录蚂蚁庄园动态的文件
(1)在IDLE中创建一个名称为antmanor_message.py的文件,然后在该文件中,首先输出一条提示信息,然后再调用open()函数创建或打开文件,最后再输出一条提示信息,代码如下:
1 print("\n","="*10,"蚂蚁庄园动态","="*10)
2 file = open('message.txt','w') #创建或打开(只写模式)保存蚂蚁庄园动态信息的文件
3 print("\n 即将显示……\n") #只打开了文件,没有其他操作
(2)运行结果如下:(此时还没有向文件写入任何内容)


2、实例02:向蚂蚁庄园的动态文件写入一条信息
(1)在IDLE中创建一个名称为antmanor_message_w.py的文件,然后在该文件中,首先应用open()函数以写方式打开一个文件,然后再调用write()方法向该文件写入一条动态信息,再调用close()方法关闭文件,代码如下:
1 print("\n","="*10,"蚂蚁庄园动态","="*10)
2 file = open('message.txt','w') #创建或打开(只写模式)保存蚂蚁庄园动态信息的文件
3 file.write("你使用了一张加速卡,小鸡撸起袖子开始双手吃饲料,进食速度大大加快。\n")#写入信息
4 print("\n 写入了一条动态……\n")
5 file.close() #关闭文件
(2)运行结果如下:(此时文件已有write()写入的信息)


(3)如果打开文件是应用了w(写入)模式,则先会清空原文件中的内容,再写入新的内容,如果打开文件是应用了a(追加)模式,则不会覆盖文件原有的内容,修改版代码如下:
1 print("\n","="*10,"蚂蚁庄园动态","="*10)
2 file = open('message.txt','a') #以追加模式打开文件
3 file.write("mingri的小鸡在你的庄园待了22分钟,吃了6g饲料之后,被你赶走了。\n")#追加一条动态信息
4 print("\n 追加了一条动态……\n")
5 file.close()
(4)运行结果如下:


3、实例03:显示蚂蚁庄园的动态
(1)在IDLE中创建一个名称为antmanor_message_r.py的文件,然后在该文件中,首先应用open()函数以只读方式打开一个文件,然后再调用read()方法读取全部动态信息,并输出,代码如下:
1 print("\n","="*25,"蚂蚁庄园动态","="*25,"\n")
2 with open('message.txt','r') as file: #打开保存蚂蚁庄园动态信息的文件
3 message = file.read() #读取全部动态信息
4 print(message) #输出动态信息
5 print("\n","="*29,"over","="*29,"\n")
(2)运行结果如下:

4、实例04:逐行显示蚂蚁庄园的动态
(1)在IDLE中创建一个名称为antmanor_message_r1.py的文件,然后在该文件中,首先应用open()函数以只读方式打开一个文件,然后应用while语句创建循环,在该循环中调用readline()方法读取一条动态信息并输出,另外还需要判断内容是否已经读取完毕,如果读取完毕应用break语句跳出循环,代码如下:
1 print("\n","="*35,"蚂蚁庄园动态","="*35,"\n")
2 with open('message.txt','r') as file: #打开文件
3 number = 0 #记录行号
4 while True:
5 number += 1
6 line = file.readline()
7 if line =='': #最后的结尾为空''
8 break #跳出循环
9 print(number,line,end = "\n") #输出行号 每行内容 换行
10 print("\n","="*39,"over","="*39,"\n")
(2)运行结果如下:

5、实例05:遍历指定目录
(1)在IDLE中创建一个名称为walk_list.py的文件,首先在该文件中导入os模块,并定义要遍历的根目录,然后应用for循环遍历该目录,最后循环输出遍历到文件和子目录,代码如下:
1 import os #导入os模块
2 path = "D:\\test program" #按电脑实际文件夹情况输入要遍历的根目录
3 print("【",path,"】目录下包括的文件和目录:")
4 for root,dirs,files in os.walk(path,topdown = True):#遍历指定目录 root根目录 dirs子目录 files文件
5 for name in dirs: #循环输出遍历到的子目录
6 print("●",os.path.join(root,name))
7 for name in files: #循环输出遍历到的文件
8 print("◎",os.path.join(root,name))
(2)运行结果如下:(具体显示内容将根据使用者的具体目录结构而定)

6、实例06:获取文件基本信息
(1)在IDLE中创建一个名称为fileinfo.py的文件,首先在该文件中导入os模块,然后调用os模块的stat()函数获取文件的基本信息,最后输出文件的基本信息,代码如下:
1 import os
2 fileinfo = os.stat("mr.jpg") #获取文件的基本信息
3 print("文件完整路径:",os.path.abspath("mr.jpg")) #获取文件的完整数路径
4 print("索引号:",fileinfo.st_ino) #输出文件的基本信息
5 print("设备名:",fileinfo.st_dev)
6 print("文件大小:",fileinfo.st_size,"字节")
7 print("最后一次访问时间:",fileinfo.st_atime)
8 print("最后一次修改时间",fileinfo.st_mtime)
9 print("最后一次状态变化时间:",fileinfo.st_ctime)
(2)运行结果如下:

(3)由于上面显示的结果中的时间和字节数都是一长串的整数(长时间:系统内部的时间),与我们平时见到的有所不同,所以一般情况下,为了让显示更加直观,还需要对这样的数值进行格式化。可以在修改版中编写两个函数,一个用于格式化时间,另一个用于格式化代表文件大小的字节数。修改后的代码如下:
(4)运行结果如下:
7、实战01:根据当前时间创建文件
(1)在IDLE中创建一个名称为weathereport.py的文件,然后在指定目录中,批量创建文件,文件名为%Y %m %d %H %M %S格式的当前时间(精确到秒),为了防止出现重名的文件,在没创建一个文件后,让线程休眠一秒,代码如下:
(2)运行结果如下:
8、实战02:批量添加文件夹
(1)在IDLE中创建一个名称为weathereport.py的文件,然后在指定的目录中,批量创建指定个数的文件夹(即目录),代码如下:
1 import os
2 a = int(input("请输入需要生成的文件夹个数:"))
3 path = "D:\\test program" #设置创建新文件夹的位置
4 for i in range(1,a+1): #循环创建
5 if not os.path.exists(path + str(i)): #判断文件夹是否存在(路径+str(i)代指新文件夹名)
6 os.mkdir(path + str(i)) #创建文件夹
7 print("文件夹"+str(i)+"创建成功!")
8 else:
9 print("该目录已经存在!")
(2)运行结果如下:


Python实验报告(第10章)的更多相关文章
- Python实验报告——第4章 序列的应用
实验报告 [实验目的] 1.掌握python中序列及序列的常用操作. 2.根据实际需要选择使用合适的序列类型. [实验条件] 1.PC机或者远程编程环境. [实验内容] 1.完成第四章 序列的应用 实 ...
- Python实验报告——第3章 流程控制语句
实验报告 [实验目的] 1.掌握python中流程控制语句的使用,并能够应用到实际开发中. [实验条件] 1.PC机或者远程编程环境 [实验内容] 1.完成第三章流程控制语句实例01-09,实战一到实 ...
- Python实验报告——第2章 Python语言基础
实验报告 [实验目的] 1.熟悉在线编程平台. 2.掌握基本的 python 程序编写.编译与运行程序的方法. [实验条件] 1.PC机或者远程编程环境 [实验内容] 1.完成第二章实例01-07,实 ...
- python实验报告(第五周)
一.实验目的和要求 学会使用字符串的常用操作方法和正确应用正则表达式. 二.实验环境 软件版本:Python 3.10 64_bit 三.实验过程 1.实例1:使用字符串拼接输出一个关于程序员的笑话 ...
- Python实验报告(第四周
一.实验目的和要求 学会应用列表.元组.字典等序列: 二.实验环境 软件版本:Python 3.10 64_bit 三.实验过程 1.实例1:输出每日一贴 (1)在IDLE中创建一个名称为tips.p ...
- Python 实验报告(第三周)
一.实验目的和要求 1.熟练运用常见选择结构: 2.熟练运用for循环和while循环: 3.理解带else语句的循环结构执行过程和break.continue语句在循环中的作用. 二.实验环境 软件 ...
- 2017-2018-2 20165315 实验四《Android程序设计》实验报告
2017-2018-2 20165315 实验四<Android程序设计>实验报告 第24章:初识Android Android Studio项目的目录树 1 build:该目录包含了自动 ...
- Python程序设计实验报告一:熟悉IDLE和在线编程平台
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 崔攀 学号3190505136 成绩_____ 日期 2020.3.8 指导老师 ...
- Python程序设计实验报告四:循环结构程序设计(设计型实验)
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 姚彩琴 学号3190505129 成绩 日期 2020.4.8 指导老师 修宇 [实验名称 ...
- Python程序设计实验报告三:分支结构程序设计
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 姚彩琴 学号3190505129 成绩 日期 2020.4.5 指导老师 修宇 [实验目的 ...
随机推荐
- .NET下数据库的负载均衡(有趣实验)(续)
.NET下数据库的负载均衡(有趣实验)这篇文章发表后,受到了众多读者的关注与好评,其中不乏元老级程序员. 读者来信中询问最多的一个问题是:它是否能支持"异种数据库"的负载均衡?? ...
- 大数据技术之HBase原理与实战归纳分享-上
@ 目录 概述 定义 特点 数据模型 概述 逻辑结构 物理存储结构 数据模型 应用场景 基础架构 安装 前置条件 部署 启动服务 高可用 Shell操作 基础操作 命令空间 DDL DML 概述 定义 ...
- Annocation(注解)的使用示例
示例一:生成文档相关的注解示例二:在编译时进行格式检查(JDK内置的三个基本注解)@Override: 限定重写父类方法, 该注解只能用于方法@Deprecated: 用于表示所修饰的元素(类, 方法 ...
- SQL语句编写的练习(MySQL)
SQL语句编写的练习(MySQL) 一.建表 1.学生表(Student) 学号 | 姓名 | 性别 | 出生年月 | 所在班级 create table Student( sno varchar(2 ...
- 在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)
1.maven教程官网 https://m.runoob.com/maven/ 2.理解Maven的构建生命周期(clean.Package) 3.在项目中使用maven进行打包 4.运行打包好的ja ...
- 那齐博x3又什么什么?
那齐博x3又什么什么? 齐博x3是齐博X1/齐博x2之后的升级版本. 主要优化圈子系统
- 23.mixin类源码解析
mixin类用于提供视图的基本操作行为,注意mixin类提供动作方法,而不是直接定义处理程序方法 例如.get() .post(),这允许更灵活的定义,mixin从rest_framework.mix ...
- 浅谈--ETCD的基本概念及用法
1. 简介 ETCD 是一个高可用的分布式键值数据库,可用于服务发现.ETCD 采用 raft 一致性算法,基于 Go 语言实现. raft是一个强一致的集群日志同步算法. ETCD使用gRPC,网络 ...
- 通过jmeter,造50个单位的并发用户数据(用户从上至下每50个单位依次排序)
单位数据:loginfoll.csv #50个单位的信息(agencyCode,passwd,agencyname,rgcode) 用户数据:50个单位,每个单位200个用户(用户名为 ...
- Java注解与原理分析
目录 一.注解基础 二.注解原理 三.常用注解 1.JDK注解 2.Lombok注解 四.自定义注解 1.同步控制 2.类型引擎 五.参考源码 使用的太多,被忽略的理所当然: 一.注解基础 注解即标注 ...