Python编程——OS模块的常见20种用法

OS模块的常见用法

在Python中,OS模块提供了非常丰富的方法用来处理文件和目录。常见的用法如下所示:

1. os.getcwd()

得到当前工作目录,即当前Python脚本工作的目录。

>>> import os
>>> os.getcwd()             #查看当前目录
'E:\\课堂笔记\\第二十三节(Windows)(2019年6月1日)\\笔记和资料'
2. os.chdir()

改变当前工作目录。

>>> os.getcwd()
'E:\\课堂笔记\\第二十三节(Windows)(2019年6月1日)\\笔记和资料'
>>> os.chdir("E:\\课堂笔记")            #改变工作目录到E:\\课堂笔记
>>> os.getcwd()             #查看当前工作目录
'E:\\课堂笔记'
3. os.listdir()

显示当前目录下所有文件和目录

>>> os.chdir("E:\\课堂笔记\\第二十三节(Windows)(2019年6月1日)\\笔记和资料")
>>> os.listdir()              #显示当前目录下的所有文件
['dict.txt', 'dnsbrute.py', 'dnsyuming_dict.txt', 'DNS二级域名爆破.docx', 'DNS区域 传送漏洞实验.docx', 'erjiyumingbaopo.py', 'WINDOWS理论课11.doc', 'zy.txt', '下午作 业']
4. os.path.isdir()

判断是否是一个目录(即,该目录必须为文件夹),返回值是:True 或 False

>>> os.path.isdir("下午作业")          #目录——>必须是文件夹
True
5. os.path.isfile()

判断是否是一个文件,返回值为:True 或 False

  • 必须为绝对路径
  • 必须是该一目录下的一个文件
>>> os.path.isfile("E:\\课堂笔记\\第二十三节(Windows)(2019年6月1日)\\笔记和资料\\zy.txt")
True
6. os.mkdir()

新建目录

>>> os.listdir()
['dict.txt', 'dnsbrute.py', 'dnsyuming_dict.txt', 'DNS二级域名爆破.docx', 'DNS区域 传送漏洞实验.docx', 'erjiyumingbaopo.py', 'WINDOWS理论课11.doc', 'zy.txt', '下午作 业']
>>> os.mkdir("test")
>>> os.listdir()
['dict.txt', 'dnsbrute.py', 'dnsyuming_dict.txt', 'DNS二级域名爆破.docx', 'DNS区域 传送漏洞实验.docx', 'erjiyumingbaopo.py', 'test', 'WINDOWS理论课11.doc', 'zy.txt', '下午作业']
7. os.makedirs()

新建目录下面有子目录

>>> os.makedirs("test2\\1\\2")
>>> os.listdir()
['dict.txt', 'dnsbrute.py', 'dnsyuming_dict.txt', 'DNS二级域名爆破.docx', 'DNS区域 传送漏洞实验.docx', 'erjiyumingbaopo.py', 'test', 'test2', 'WINDOWS理论课11.doc', 'zy.txt', '下午作业']
8. os.rmdir()

只能删除目录为空的目录(即,文件夹),否则不能删除;要删除有子目录的文件,可以使用shutil.rmtree()

>>> os.listdir()
['dict.txt', 'dnsbrute.py', 'dnsyuming_dict.txt', 'DNS二级域名爆破.docx', 'DNS区域 传送漏洞实验.docx', 'erjiyumingbaopo.py', 'test', 'test2', 'WINDOWS理论课11.doc', 'zy.txt', '下午作业']
>>> os.rmdir("test")
>>> os.rmdir("test2")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [WinError 145] 目录不是空的。: 'test2'
>>> import shutil
>>> shutil.rmtree("test2")
>>> os.listdir()
['dict.txt', 'dnsbrute.py', 'dnsyuming_dict.txt', 'DNS二级域名爆破.docx', 'DNS区域 传送漏洞实验.docx', 'erjiyumingbaopo.py', 'WINDOWS理论课11.doc', 'zy.txt', '下午作 业']
9. os.remove()

删除文件

>>> os.listdir()
['123.txt', 'dict.txt', 'dnsbrute.py', 'dnsyuming_dict.txt', 'DNS二级域名爆破.docx', 'DNS区域传送漏洞实验.docx', 'erjiyumingbaopo.py', 'WINDOWS理论课11.doc', 'zy.txt', '下午作业']
>>> os.remove("123.txt")
>>> os.listdir()
['dict.txt', 'dnsbrute.py', 'dnsyuming_dict.txt', 'DNS二级域名爆破.docx', 'DNS区域 传送漏洞实验.docx', 'erjiyumingbaopo.py', 'WINDOWS理论课11.doc', 'zy.txt', '下午作 业']
10. os.system()

运行shell命令和PowerShell命令。

>>> os.system("cmd")
Microsoft Windows [版本 10.0.17134.765]
(c) 2018 Microsoft Corporation。保留所有权利。

E:\课堂笔记\第二十三节(Windows)(2019年6月1日)\笔记和资料>python
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.system("powershell")
Windows PowerShell
版权所有 (C) Microsoft Corporation。保留所有权利。

PS E:\课堂笔记\第二十三节(Windows)(2019年6月1日)\笔记和资料>
11. os.sep

含义:主要用于系统路径中的分隔符

Windows系统通过是“\”,Linux类系统如Ubuntu的分隔符是“/”,而苹果Mac OS系统中是“:”

>>> import os
>>> os.sep
'\\'
12. os.path.split()

返回一个路径的目录名和文件名。(必须为绝对路径)

>>> os.path.split("E:\\课堂笔记\\第二十三节(Windows)(2019年6月1日)\\笔记和资料")
('E:\\课堂笔记\\第二十三节(Windows)(2019年6月1日)', '笔记和资料')
13. os.path.splitdrive()

以盘进行拆分路径

>>> import os
>>> os.path.splitdrive("E:\\课堂笔记\\第二十三节(Windows)(2019年6月1日)\\笔记和资料")
('E:', '\\课堂笔记\\第二十三节(Windows)(2019年6月1日)\\笔记和资料')
14. os.path.join()

组合路径

>>> path="d:\\python_code\\csv"
>>> f="1.txt"
>>> os.path.join(path,f)
'd:\\python_code\\csv\\1.txt'
15. os.path.exists()

用来检验给出的路径是否存在,返回值为:True或者False。

>>> import os
>>> os.path.exists("E:\课堂笔记\第二十三节(Windows)(2019年6月1日)")
True
>>> os.path.exists("E:\课堂笔记\第二十四节(2019年6月2日)Windows")
True
>>> os.path.exists("E:\课堂笔记\第二十四节(2019年6月2日)Windows\\1.txt")
False
16. os.path.abcpath()

获取绝对路径。只能显示该CMD目录下的。

>>> os.path.abspath("下午作业")
'E:\\课堂笔记\\第二十三节(Windows)(2019年6月1日)\\笔记和资料\\下午作业'
17. os.path.basename()

去掉目录路径,返回文件名

>>> os.path.basename("E:\\课堂笔记\\第二十三节(Windows)(2019年6月1日)\\笔记和资料\\下午作业")
'下午作业'
18. os.path.dirname()

去掉文件名,返回目录路径

>>> os.path.dirname("E:\\课堂笔记\\第二十三节(Windows)(2019年6月1日)\\笔记和资料\\ 下午作业")
'E:\\课堂笔记\\第二十三节(Windows)(2019年6月1日)\\笔记和资料'
19. os.path.splitext()

分离文件名与扩展名

>>> os.path.splitext("E:\\课堂笔记\\第二十三节(Windows)(2019年6月1日)\\笔记和资料\\ 下午作业\\zy.txt")
('E:\\课堂笔记\\第二十三节(Windows)(2019年6月1日)\\笔记和资料\\ 下午作业\\zy', '.txt')
>>> os.path.splitext("zy.txt")
('zy', '.txt')
20. os.path.getsize()

获取文件大小,如果name为目录,返回0;如果为文件,则返回文件的字节数。

>>> os.path.getsize("E:\\课堂笔记")
8192
>>> os.path.getsize("E:\\课堂笔记\\第二十三节(Windows)(2019年6月1日)")
0
>>> os.path.getsize("E:\\课堂笔记\\第二十三节(Windows)(2019年6月1日)\\笔记和资料")
4096
>>> os.path.getsize("E:\\课堂笔记\\第二十三节(Windows)(2019年6月1日)\\笔记和资料\\dict.txt")
356

猜你喜欢

转载自blog.csdn.net/weixin_45116657/article/details/91580328
今日推荐