少女祈祷中...

Python模块之OS


本篇概述:os模块常用方法汇总


os模块——操作系统的接口

1
2
import os
dir(os)

1、os.listdir(path)☆

1
2
3
# 如果path=None,则返回当前目录下的文件夹和文件名字的列表;否则返回指定path的件夹和文件名字的列表
os.listdir()
os.listdir(path)

2、os.chdir(path)☆

1
2
# 切换到path
os.chdir(path)

3、os.getcwd()☆

1
os.getcwd()

4、os.path.join()☆

1
2
3
4
5
# 拼接路径
path1 = 'C:\\Users\\Hatsune Miku\\Deskto
path2 = 'test1.py'
os.path.join(path1,path2)
# C:\\Users\\Hatsune Miku\\Desktop\\test1.py

5、os.path.exists(path)☆

1
2
3
4
# 判断路径是否存在,返回True或False
os.path.exists('.')
os.path.exists('.\\ssss')
# True False

6、os.path.abspath(path)☆

1
2
3
4
5
# 返回path的绝对路径。
os.path.abspath('.') # 返回当前目录
# C:\\Users\\Hatsune Miku\\Desktop
os.path.abspath('.\\1102')
# 'C:\\Users\\Hatsune Miku\\Desktop\\1102

7、os.path.split(path)☆

1
2
3
4
5
6
7
8
9
# 将路径分解为文件夹和文件名,返回的是元组
os.path.split('C:\\Users\\Hatsune Miku\\Desktop\\test1.py')
# ('C:\\Users\\Hatsune Miku\\Desktop', 'test1.py')

# 仅分离文件夹路径时需要注意的是,所以需要在文件夹后加上/
os.path.split('C:\\Users\\Hatsune Miku\\Desktop\\')
os.path.split('C:\\Users\\Hatsune Miku\\Desktop')
# ('C:\\Users\\Hatsune Miku\\Desktop', '')
# ('C:\\Users\\Hatsune Miku', 'Desktop')

8、os.path.dirname(path)☆

1
2
3
# 返回path中的文件夹部分,结果不包含'\',返回的是str
os.path.dirname('C:\\Users\\Hatsune Miku\\Desktop\\test1.py')
# C:\\Users\\Hatsune Miku\\Desktop

9、os.path.basename(path)☆

1
2
3
# 返回path中的文件名部分
os.path.basename('C:\\Users\\Hatsune Miku\\Desktop\\test1.py')
# test1.py

10、os.path.getmtime(path)

1
2
3
# 文件夹或文件的最后修改时间,返回的是从新纪元到访问时的秒数
os.path.getmtime('C:\\Users\\Hatsune Miku\\Desktop\\test1.py')
# 1556017564.1900363

11、os.path.getatime(path)

1
2
3
# 文件夹或文件的最后访问时间
os.path.getmtime('C:\\Users\\Hatsune Miku\\Desktop\\test1.py')
# 1555867584.470328

12、os.path.getacime(path)

1
2
3
# 文件夹或文件的创建时间
os.path.getatime('C:\\Users\\Hatsune Miku\\Desktop\\test1.py')
# 1555867584.470328

13、os.path.getsize(path)☆

1
2
3
4
5
6
7
8
9
# 文件夹或文件的大小,若是文件夹返回0,是文件则返回字节数
os.path.getsize('C:\\Users\\Hatsune Miku\\Desktop\\test1.py')
# 2419

# 46.6M的文件,字节数为48877195
print(48877195/float(1024*1024))
print('%.2f'%(48877195/float(1024*1024)))
# 46.61292552947998
# 46.61

14、os.makedirs()☆

1
2
# 创建文件夹
os.makedirs('C:\\Users\\Hatsune Miku\\Desktop\\testtesttest')

15、os.system()

1
2
3
4
# 运行sheel命令,无返回值
os.system('ipconfig')
a = os.system('ipconfig')
# 0

16、os.popen()

1
2
3
4
5
6
# 执行命令并把 执行的cmd的输出结果 返回
# os.popen(cmd,mode,bufsize) 命令,权限,需要的缓冲大小
a = os.popen('ipconfig')
a.read()
# a 返回一个文件描述符号为fd的打开的文件对象
# a.read()是字符串

17、os.remove(path)☆

1
2
# 删除文件路径
os.remove(path)

18、os.rename(src,dst)

1
2
# 将文件或目录src重命名为dst
# 将'tess1'文件夹重命名为'test2'

19、os.getenv()

1
2
# 获得环境变量
os.getenv('path')

20、os.walk()

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
# os.walK()是一个简单易用的目录遍历器,用于在目录树中游走输出在目录中的文件名
# 返回的是一个三元元组,(root,dirs,files)
# root 当前遍历的目录路径
# dirs 当前目录下的文件夹(列表)
# files 当前目录下的文件(列表)
# .代表当前目录路径
for root,dirs,files in os.walk('.'):
print(root)
print(dirs)
print(files)
# 先返回当前目录的三元元组,再返回子目录的,有子子目录则亦然

# 计算一个文件夹的大小 ↓
# 首先遍历当前目录然后是子目录
# 遍历目录时可以先通过os.path.join拼接路径,用os.path.getsize()获得文件的大小,使用遍历则获得一个文件夹下的所有文件的大小——>即这个文件夹的大小

# 1.
size = 0
for root,dirs,files in os.walk(path):
for name in files:
size += os.path.getsize(os.path.join(root, name))

# 2.
size = 0
for root,dirs,files in os.walk(path):
size += sum([os.path.getsize(os.path.join(root, name)) for name in files])
-------------本文结束感谢您的阅读-------------

本文标题:Python模块之OS

文章作者:Coder-Sakura

发布时间:2019年05月09日 - 05:45:42

最后更新:2019年09月26日 - 12:09:20

原始链接:https://coder-sakura.github.io/blog/2019/05/09/model-os/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。