当前位置: 首页> 健康> 科研 > 对目录的操作、获取文件信息

对目录的操作、获取文件信息

时间:2025/7/9 0:18:16来源:https://blog.csdn.net/2303_80050865/article/details/142280234 浏览次数:0次

目录

一、目录操作

二、获取文件的相关信息

1、演示获取文件的相关信息

2、注意事项和细节


一、目录操作

需求:

1)创建一级目录 d://aaa

2)创建多级目录 d://bbb//ccc

3)删除目录 d://aaa和d://bbb//ccc

import os# 1)创建一级目录 d://aaa
# if os.path.isdir("d://aaa"):
#     print("d://aaa目录已经存在...")
# else:
#     os.mkdir("d://aaa")# 2)创建多级目录 d://bbb//ccc
# if os.path.isdir("d://bbb//ccc"):
#     print("d://bbb//ccc目录已经存在...")
# else:
#     os.makedirs("d://bbb//ccc")# 3)删除目录 d://aaa和d://bbb//ccc
# 删除单级目录使用rmdir,要求目录为空
# if os.path.isdir("d://aaa"):
#     os.rmdir("d://aaa")
# else:
#     print("d://aaa目录不存在,无法删除")# 删除多级目录,使用removedirs,要求目录为空
if os.path.isdir("d://bbb//ccc"):os.removedirs("d://bbb//ccc")
else:print("d://bbb//ccc目录不存在,无法删除")

二、获取文件的相关信息

1、演示获取文件的相关信息

# 获取文件的相关信息(大小、创建时间、访问时间、修改时间等)
# 说明:time.ctime()方法的作用是将返回来的时间戳转为字符串格式import os
import timef_stat=os.stat("d:/a/abc.txt")
print("-----文件信息-----")
print(f"文件大小->{f_stat.st_size}")
print(f"最近的访问时间->{time.ctime(f_stat.st_atime)}")
print(f"最近的修改时间->{time.ctime(f_stat.st_mtime)}")
print(f"文件创建的时间->{time.ctime(f_stat.st_ctime)}")

2、注意事项和细节

1)f.flush():刷新流的写入缓冲区到文件

"""1、调用f.wirte()时,内容并没有真正写入到文件,而是先积攒到缓冲区2、当调用flush()时,内容会真正写入到文件3、这样是为了避免频繁的操作硬盘,导致效率低(积攒到一定量的数据,一次性写入文件,提高效率)
"""
# f.flush():刷新流的写入缓冲区
import timef=open("d://a//hi.txt","w",encoding="utf-8")
f.write("你好1,python~\n")
f.write("你好2,python~\n")
f.write("你好3,python~\n")# 测试f.flush()将缓冲区数据刷新,写入文件
f.flush()
print("-----等待-----")
time.sleep(10)
print("-----等待 end-----")

2)f.close():刷新并关闭此流,也就是f.close()内置的flush功能

3)with open() as f:在处理文件对象时,子句体结束后,文件会自动关闭

# with open() as f:
# 在处理文件对象时,子句体结束后,文件会自动关闭
with open("d://a//hello.txt","r",encoding="utf-8") as f:lines=f.readlines()print("----文件内容----")for line in lines:print(line,end="")
print("\n文件是否关闭->",f.closed)

4)关于目录分隔符号,在windows下 "/ " 和 "//" 都可以,比如如"d://aaa//bbb//hi.txt"和"d:/aaa/bbb/hi.txt",linux/unix是"/",比如 /root/home/aa.log 因此建议目录分隔符,为了兼容,linux和windows都使用"/"

关键字:对目录的操作、获取文件信息

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: