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 指导老师 修宇 [实验目的 ...
随机推荐
- 微信小程序开发优化
一.开发优化一 1.使用Vant Weapp 1.1 什么是Vant Weapp Vant Weapp官网链接 Vant Weapp是有赞前端团队开源的一套小程序UI组件库,助力开发者快速搭建小程序应 ...
- 关于AWS-IAM-certificate-证书的说明
AWS提供了证书管理的服务,可以使用IAM和ACM(位于Security & Identity IAM下的Certificate Manager)进行管理 在CloudFront和ALB中都可 ...
- Jmeter——BeanShell 内置变量vars、props、prev的使用
在使用Jmeter过程中,或多或少都会接触些BeanShell,它会使工具的使用,变得更灵活. Jmeter中关于BeanShell的有: 1.BeanShell Sampler 取样器:完成Bean ...
- vue实现功能 单选 取消单选 全选 取消全选
vue实现功能 单选 取消单选 全选 取消全选 代码部分 <template> <div class=""> <h1>全选框</h1> ...
- 【linux】 第1回 linux运维基础
目录 1. 运维的本质 2. 电脑与服务器 2.1 电脑的种类 2.2 服务器种类 2.3 服务器品牌 2.4 服务器尺寸 2.5 服务器内部组成 3. 磁盘阵列 4. 系统简介 5. 虚拟化 6. ...
- 16.MongoDB系列之分片管理
1. 查看当前状态 1.1 查看配置信息 mongos> use config // 查看分片 mongos> db.shards.find() { "_id" : & ...
- 面向对象day02,作业学生类,电脑类
学生类,电脑类,测试类 学生类:解释都写在注释里面 public class Student { public String name; public int id; public char gend ...
- centos7 安装RabbitMQ3.6.15 以及各种报错
成功图镇楼 各个版本之间的差异不大,安装前要确保rabbitmq 的版本和 elang的版本一致.预防各种错乱. 注意点:(重要!!重要!!) * 同时安装的时候最好确保rabbitmq和erlang ...
- Java函数式编程:一、函数式接口,lambda表达式和方法引用
Java函数式编程 什么是函数式编程 通过整合现有代码来产生新的功能,而不是从零开始编写所有内容,由此我们会得到更加可靠的代码,并获得更高的效率 我们可以这样理解:面向对象编程抽象数据,函数式编程抽象 ...
- web3.0、比特币、区块链、元宇宙,以及那些待收割的韭菜们!
前几天看到周星驰在社交账号上招聘web3.0的人才,感觉有必要说说web3.0,当然不是基于技术层面,而是从另一个维度说说web3.0以及其它相关的概念,从而做到如何反欺诈,如何避免被资本割韭菜.想到 ...