第十章 文件及目录操作

 

 

实例01:创建并打开记录蚂蚁庄园动态的文件

 

   在IDLE中创建一个名称为 antmanor_message.py 的文件,然后在该文件中,首先输出一条提示信息,然后再调用open()函数创建或打开文件,最后再输出一条提示信息。

 

 

print("\n","="*10,"蚂蚁庄园动态","="*10)
file = open('message.txt','w')
print("\n即将显示……\n")

 

 

 

实例02:向蚂蚁庄园的动态文件写入一条信息

   在 IDLE中创建一个名称为 antmanor_message_w.py的文件,然后在该文件中,首先应用open()函数以写方式打开一个文件,然后再调用write()方法向该文件中写入一条动态信息,再调用close()方法关闭文件。

print("\n","="*10,"蚂蚁庄园动态","="*10)
file = open('message.txt','w')              #创建或打开保存蚂蚁庄园动态信息的文件
#写入一条动态信息
file.write("你使用了一张加速卡,小鸡撸起袖子开始双手吃饲料,进食速度大大加快。\n")
print("\n写入了一条动态……\n")
file.close()                                #关闭文件对象

 

 

 

 

 

 

追加一条动态信息 

print("\n","="*10,"蚂蚁庄园动态","="*10)
file = open('message.txt','a')              #创建或打开保存蚂蚁庄园动态信息的文件
#追加一条动态信息
file.write("杨某的小鸡在你的庄园待了22分钟,吃了6g饲料后,被你赶走了。\n")
print("\n追加了一条动态……\n")
file.close()                                #关闭文件对象

 

 

 

 

实例03:显示蚂蚁庄园的动态

  在IDLE中创建一个名称为antmanor_message_r.py 的文件,然后在该文件中,首先应用open()函数以只读方式打开一个文件,然后再调用read()方法读取全部动态信息,并输出。

print("\n","="*10,"蚂蚁庄园动态","="*10)
with open('message.txt','r') as file:             #打开保存蚂蚁庄园动态信息的文件(r只读)
    message = file.read()                   #读取全部动态信息
    print(message)
    print("\n","="*29,"over","="*29,"\n")

 

 

 

实例04:逐行显示蚂蚁庄园的动态

  在IDLE中创建一个名称为 antmanor_message_rl.py的文件,然后在该文件中,首先应用open()函数以只读方式打开一个文件,然后应用while 语句创建循环,在该循环中调用readline()方法读取一条动态信息并输出,另外还需要判断内容是否已经读取完毕,如果读取完毕应用 break 语句跳出循环。

print("\n","="*35,"蚂蚁庄园动态","="*35,"\n")
with open('message.txt','r') as file:             #打开保存蚂蚁庄园动态信息的文件(r只读)
    number = 0                                    #记录行号
    while True:
        number +=1
        line = file.readline()
        if line =="":
            break
        print(number,line,end="\n")
print("\n","="*39,"over","="*39,"\n")

 

实例05:遍历指定目录

   在IDLE中创建一个名称为walk_list.py 的文件,首先在该文件中导入os模块,并定义要遍历的根目录,然后应用for 循环遍历该目录,最后循环输出遍历到文件和子目录。

import os                                      #导入os模块
path = "D:\\learn\\pythonwork"                        #指定要遍历的根目录
print("",path,"】  目录下包括的文件和目录:")
for root,dirs,files in os.walk (path, topdown=True): #遍历指定目录
    for name in dirs:                                #循环输出遍历到的子目录
        print("",os.path.join(root,name))
    for name in files:                               #循环输出遍历到的文件
        print("",os.path.join(root,name))

 

 

实例06:获取文件基本信息

  在IDLE中创建一个名称为fileinfo.py的文件,首先在该文件中导入os模块,然后调用os模块的stat()函数获取文件的基本信息,最后输出文件的基本信息。

import os                                #导入os模块
fileinfo = os.stat("message.txt")             #获取文件的基本信息
print("文件完整路径:", os.path.abspath("message.txt"))  #获取文件的完整数路径
#输出文件的基本信息
print("索引号:",fileinfo.st_ino)
print("设备名:",fileinfo.st_dev)
print("文件大小:",fileinfo.st_atime)
print("最后一次访问时间:",fileinfo.st_atime)
print("最后一次修改时间:",fileinfo.st_mtime)
print("最后一次状态变化时间:",fileinfo.st_ctime)

 

 

 

实战一:根据当前时间创建文件

  在指定目录中,批量创建文件,文件名为%Y%m%d%H%M%S格式的当前时间(精确到秒)。例如,创建文件的时间为2018年4月18日9点18分38秒,则该文件的文件为20180418091838.txt。为了防止出现重名的文件,在每创建一个文件后,让线程休眠一秒。效果如图10.30和图10.31所示。

 

 

import os                                #导入os模块
import time
import datetime
print("需要生成的文件数:2")
for i in range(2):
    t = datetime.datetime.now()          #获取当前时间
    path="D:\learn\pythonwork\chapter10"
    file = os.path.join(path,t.strftime('%Y%m%d%H%M%S')+'txt')
    open(file,'w')
    print("file " + str(i) + ":" + str(file))
print("生成文件成功!")

 

 

 

实战二:批量添加文件夹

  在指定的目录中,批量创建指定个数的文件夹(即目录),效果如图10.32和图10.33所示。

posted @ 2022-11-09 18:10  一直编程一直爽  阅读(37)  评论(0)    收藏  举报