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

目录

一、目录操作

二、获取文件的相关信息

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 time

f_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 time

f=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都使用"/"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值