当前位置: 首页 > news >正文

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

目录

一、目录操作

二、获取文件的相关信息

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • [PTA]7-6 整数分解为若干项之和
  • 【conda】macOS how to install conda?
  • 【Vue】VueRouter路由
  • Oracle 19c 安装教程学习
  • AV1 Bitstream Decoding Process Specification--[4]:语法结构
  • monaco editor 在react中的使用
  • 设计模式——对象池模式
  • pg入门3—详解tablespaces2
  • Pandas中DataFrame表格型数据结构
  • 傅里叶变换的基本性质和有关定理
  • 硬件工程师笔试面试——保险丝
  • 【BoF】《Bag of Freebies for Training Object Detection Neural Networks》
  • 网络安全(黑客技术)2024年三个月自学计划
  • 3.接口测试的基础/接口关联(Jmeter工具/场景一:我一个人负责所有的接口,项目规模不大)
  • Visual Studio-X64汇编编写
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • 78. Subsets
  • Android单元测试 - 几个重要问题
  • HomeBrew常规使用教程
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • Markdown 语法简单说明
  • MySQL数据库运维之数据恢复
  • OSS Web直传 (文件图片)
  • Python进阶细节
  • Python中eval与exec的使用及区别
  • React Native移动开发实战-3-实现页面间的数据传递
  • Vue--数据传输
  • 从0到1:PostCSS 插件开发最佳实践
  • 汉诺塔算法
  • 好的网址,关于.net 4.0 ,vs 2010
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 前端面试之闭包
  • 三栏布局总结
  • 算法---两个栈实现一个队列
  • 通信类
  • 我建了一个叫Hello World的项目
  • 用 Swift 编写面向协议的视图
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (2024最新)CentOS 7上在线安装MySQL 5.7|喂饭级教程
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (备份) esp32 GPIO
  • (分布式缓存)Redis哨兵
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (三)Honghu Cloud云架构一定时调度平台
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (学习日记)2024.01.09
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)memcache、redis缓存