os模块

文件夹的查询和判断:查询路径,判断大小,是否文件、文件夹,获取文件大小
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import os
print(os.path.join('D:','move','a.mp4')) #拼路径D:move\a.mp4
print(os.path.exists('passwords.txt')) #判断文件或文件夹是否存在,返回True或flase
print(os.path.dirname('/NiuTest/MLingTest')) # 获取父目录,入参文件 文件要用/,win用/ mac用\
print(os.path.abspath('passwords.txt')) #根据相对路径,获取绝对路径 D:\NiuTest\MLingTest\day5\passwords.txt
print(os.path.abspath('../day4/test.py')) #根据相对路径,获取绝对路径 D:\NiuTest\MLingTest\day4\test.py
# 相对路径:根据当前文件去上层找其他文件,上级文件要用..
# 再当前文件中,通过相对目录找day4下的test.py,../day4/test.py
 
print(os.path.split('/day4/test.py')) #('/day4', 'test.py') 将路径分隔成一个元组
print(os.path.getsize(r'../day4/test.py')) #13 #获取当前文件的大小
print(os.path.isfile('../day4/test.py')) #判断是不是文件
print(os.path.isdir('../day4')) #判断是不是文件夹 True
 
#运行结果
D:move\a.mp4
True
/NiuTest
D:\NiuTest\MLingTest\day5\passwords.txt
D:\NiuTest\MLingTest\day4\test.py
('/day4', 'test.py')
13
True
True

 

文件/文件夹的创建和删除

 

1
2
3
4
5
6
7
8
9
10
11
12
import os
#mkdir和makedirs的区别
print(os.mkdir('test.py')) #创建文件夹 再当前目前下创建一层目录
print(os.mkdir('../day4/tests'))  #这样创建是ok的,父目录是存在的
print(os.mkdir('../day4/tests/test.py'))  #不能一连创建两层,如果父目录tests不存在的时候,创建不了
os.makedirs('/tests/test.py') #可以一连创建多层不存在的文件夹下的文件
 
#rmdir和remove的区别
os.rmdir('test') #仅能删除空文件夹
os.remove('python/射手座') #只能删除文件,不能删除文件夹,删传文件夹的时候会报错,删之后不能恢复
 
os.rename('test.py','MLing.py') #修改文件名称

  

目录的获取,进入、查询

1
2
3
4
5
6
7
8
print(os.listdir('.')) #获取当前文件下所有的文件和文件夹
#['MLing.py', 'os模块.py', 'passwords.txt', 'sys模块.py', 'test', '上周作业一.py', '上周作业二.py', '上周回顾.py', '商品管理.py', '大乐透.txt']
 
print(os.listdir('..')) #获取上层文件下的所有的文件和文件夹
#['day1', 'day2', 'day3文件+函数', 'day4', 'day5']
 
os.chdir('../day4') #进入到某个文件夹,写相对和决断路径都可以,没有返回值
open('chdir.txt','w') #在进入的文件夹中打开一个文件,不存在的时候 创建

  

walk的使用
获取某个目录下的内容
1、当前入参的目录
2、当前目录下有哪些文件夹
3、当前目录下有哪些文件
4、循环下面的所有的子目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import os
for cur_dir,dirs,files in os.walk('D:/NiuTest/MLingTest'):
    print('当前目录是%s'%cur_dir)
    print('当前目录下的文件夹是%s'%dirs)
    print('当前文件夹下的所有文件%s'%files)
    print('='*10)
 
执行结果:
当前目录是D:/NiuTest/MLingTest
当前目录下的文件夹是['day1', 'day2', 'day3文件+函数', 'day4', 'day5']
当前文件夹下的所有文件[]
==========
当前目录是D:/NiuTest/MLingTest\day1
当前目录下的文件夹是[]
当前文件夹下的所有文件['four.py', 'hello.py', 'one.py', 'three.py', 'two.py', '作业.py', '判断小练习.py', '字典.py']
==========
当前目录是D:/NiuTest/MLingTest\day2
当前目录下的文件夹是['作业']
当前文件夹下的所有文件['作业.py', '元组.py', '切片.py', '判断.py', '字符串.py', '布尔类型.py', '文件读写.py', '课前.py', '集合.py']
==========
当前目录是D:/NiuTest/MLingTest\day2\作业
当前目录下的文件夹是[]
当前文件夹下的所有文件['a.txt', 'student.txt', 'users.txt', '排序作业.py', '用户作业.py']
==========
当前目录是D:/NiuTest/MLingTest\day3文件+函数
当前目录下的文件夹是[]
当前文件夹下的所有文件['jsion操作.py', 'student.txt', 'student1.txt', 'tihuan.txt', 'u2.txt', '__init__.py', '修改文件.py', '冒泡排序.py', '函数.py', '函数的参数.py', '函数练习.py', '简便写法.py']
==========
当前目录是D:/NiuTest/MLingTest\day4
当前目录下的文件夹是['tests', '作业']
当前文件夹下的所有文件['chdir.txt', 'random模块.py', 'test.py', '全局和局部变量.py', '内置函数.py', '模块.py']
==========
当前目录是D:/NiuTest/MLingTest\day4\tests
当前目录下的文件夹是['test.py']
当前文件夹下的所有文件[]
==========
当前目录是D:/NiuTest/MLingTest\day4\tests\test.py
当前目录下的文件夹是[]
当前文件夹下的所有文件[]
==========
当前目录是D:/NiuTest/MLingTest\day4\作业
当前目录下的文件夹是[]
当前文件夹下的所有文件['goods.json', 'number.txt', 'password.txt', 'pd.txt', 'test.py', '作业一.py', '作业三.py', '作业二.py']
==========
当前目录是D:/NiuTest/MLingTest\day5
当前目录下的文件夹是['MLing.py', 'test', 'test.py', '__pycache__']
当前文件夹下的所有文件['os作业.py', 'os模块.py', 'passwords.txt', 'pymysql操作.py', 'sys模块.py', '上周作业一.py', '上周作业二.py', '上周回顾.py', '商品管理.py', '大乐透.txt', '时间相关的模块.py']
==========
当前目录是D:/NiuTest/MLingTest\day5\MLing.py
当前目录下的文件夹是[]
当前文件夹下的所有文件[]
==========
当前目录是D:/NiuTest/MLingTest\day5\test
当前目录下的文件夹是[]
当前文件夹下的所有文件[]
==========
当前目录是D:/NiuTest/MLingTest\day5\test.py
当前目录下的文件夹是[]
当前文件夹下的所有文件[]
==========
当前目录是D:/NiuTest/MLingTest\day5\__pycache__
当前目录下的文件夹是[]
当前文件夹下的所有文件[]
==========

  

 
posted @   MLing  阅读(146)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2017-05-16 Python中基本的读文件和简单数据处理
2017-05-16 上传和下载文件
2017-05-16 fiddler与Charles的区别
2017-05-16 修改请求和返回报文
2017-05-16 charles抓包--手机端
点击右上角即可分享
微信分享提示