一、实验目的和要求
1、学会基本文件操作;
2、学会目录操作;
3、学会高级文件操作。
二、实验环境
软件版本:Python 3.10 64_bit
三、实验过程
1、实例1:创建并打开记录蚂蚁庄园动态的文件
(1)在IDLE中创建一个名称为antmanor_message.py的文件,然后在该文件中,首先输出一条提示信息,然后再调用open()函数创建或打开文件,最后再输出一条提示信息。代码如下:
1 print("\n","="*10,"蚂蚁庄园动态","="*10) 2 file = open("message.txt",'w') # 创建或打开保存蚂蚁庄园动态信息的文件 3 print("\n 即将显示……\n")
(2)运行结果如图所示:
2、实例2:向蚂蚁庄园的动态文件写入一条信息
(1)在IDLE中创建一个名称为antmanor_message_w.py的文件,然后在该文件中,首先应用open()函数以写方式打开一个文件,然后再调用write()方法在该文件中写入一条动态信息,再调用close()方法关闭方法。代码如下:
1 print("\n","="*10,"蚂蚁庄园动态","="*10) 2 file = open("message.txt","w") # 创建或打开保存蚂蚁庄园动态信息的文件 3 # 写入一条动态信息 4 file.write("你使用了1张加速卡,小鸡撸起袖子开始双手吃饲料,进食速度大大加快。\n") 5 file.write("你使用了1张加速卡,小鸡撸起袖子开始双手吃饲料,进食速度大大加快。\n") 6 print("\n 写入了一条动态……\n") 7 file.close() # 关闭文件对象
(2)运行结果如图所示:
3、实例3:显示蚂蚁庄园的动态
(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、实例4:逐行显示蚂蚁庄园的动态
(1)在IDLE中创建一个名称为antmanor_message_rl.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、实例5:遍历指定目录
(1)在IDLE中创建一个名称为walk_list.py的文件,首先在该文件中导入os模板,并定义要遍历的根目录,然后应用for循环遍历该目录,最后循环输出遍历到文件和子目录。代码如下:
1 import os # 导入os模板 2 path = "E:\\test\\section9" # 指定要遍历的根目录 3 print("【",path,"】目录下包括的文件和目录") 4 for root,dirs,files in os.walk(path,topdown = True): # 遍历指定目录 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、实例6:获取文件基本信息
(1)在IDLE中创建一个名称为fileinfo.py的文件,首先在该文件中导入os模板,然后调用os模板的stat(0函数获取文件的基本信息,最后输出文件的基本信息。代码如下:
1 import os # 导入os模板 2 fileinfo = os.stat("message.txt") # 获取文件的基本信息 3 print("文件完整路径:",os.path.abspath("message.txt")) # 获取文件的完整路径 4 # 输出文件的基本信息 5 print("索引号:",fileinfo.st_ino) 6 print("设备名:",fileinfo.st_dev) 7 print("文件大小",fileinfo.st_size,"字节") 8 print("最后一次访问时间:",fileinfo.st_atime) 9 print("最后一次修改时间:",fileinfo.st_mtime) 10 print("最后一次状态变化时间:",fileinfo.st_ctime)
(2)运行结果如图所示:
7、实战一:根据当前时间创建文件
(1)在当前目录中批量创建文件,文件名为%Y%m%d%H%M%S格式的当前时间(精确到秒)。例如,创建文件的时间为2018年4月18日9点18分38秒,则该文件的文件为201841891838.txt。为防止出现重名文件,在每创建一个文件后,让线程休眠一秒。代码如下:
1 import time 2 def create(): 3 global name 4 localTime = time.strftime("%Y%m%d%H%M%S", time.localtime()) 5 name = localTime + '.txt' 6 with open(name,'a') as file: 7 pass 8 if __name__ == '__main__': 9 amount = int(input('请输入需要生成的文件数:')) 10 for i in range(amount): 11 create() 12 print('file ' + str(i+1) +':' + name) 13 time.sleep(1) 14 print('生成文件成功!')
(2)运算结果如图所示:
8、实战二:批量添加文件夹
(1)在指定的目录中,批量创建指定个数的文件夹(即目录)。代码如下:
1 import os 2 path = 'E:\\section10sz2\\' 3 def folders(number): 4 for i in range(1, number + 1): 5 folder_name = path + str(i) 6 if os.path.exists(folder_name): 7 print("already exist") 8 else: 9 os.makedirs(folder_name) 10 if os.path.exists(folder_name): 11 print("文件夹" + str(i) + "创建成功!") 12 if __name__ == '__main__': 13 number = int(input("请输入需要生成的文件夹个数:")) 14 folders(number)
(2)运行结果如图所示:
标签:文件,name,file,print,操作,message,os,目录 From: https://www.cnblogs.com/wjtaowululalala/p/17028699.html