松鼠大帝 · 2019年11月21日

Python常用模块os——与操作系统交互

os.getcwd()

返回当前工作目录绝对路径

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import os
>>> print(os.getcwd())
C:\Users\28914\AppData\Local\Programs\Python\Python37

os.chdir(newpath)

更改当前工作目录

>>> import os
>>> print(os.getcwd())
C:\Users\28914\AppData\Local\Programs\Python\Python37
>>> os.chdir("C:\\")
>>> print(os.getcwd())
C:\

os.mkdir(dirpath)

创建单级目录,其父目录必须存在,否则应使用os.makedirs()创建多级目录

>>> import os
>>> os.mkdir("test1")

os.makedirs(dirpath1\dirpath2)

创建多级目录

>>> import os
>>> os.makedirs("test2\\test3")

os.removedirs(dirpath\filename)

删除空目录,并递归到上一级目录,如若上一级目录也为空,则也删除,以此类推,最下层目录非空则报错

>>> import os
>>> os.removedirs("test2\\test3")

os.remove(filepath)

删除文件

>>> import os
>>> os.remove("test.txt")

os.listdir(dirpath)

返回一个列表,列出文件夹内所有文件及子文件夹的名称

>>> import os
>>> os.listdir("C:\\")
['$360Section', '$Recycle.Bin', '360RecoveryEnv', '360Safe', '360SANDBOX', 'aow_drv.log', 'bootmgr', 'Config.Msi', 'Documents and Settings', 'hiberfil.sys', 'Intel', 'pagefile.sys', 'Program Files', 'Program Files (x86)', 'ProgramData', 'QMDownload', 'QMProxyAccelGameList.dat', 'Qt', 'Recovery', 'Strawberry', 'swapfile.sys', 'System Volume Information', 'temp', 'Users', 'Windows']

os.walk(dirpath)

返回一个生成器,遍历文件夹及其所有子孙文件夹内所有文件夹及文件
每一项为一个路径信息的元组,元组第一项为该绝对路径,第二项为该路径下文件夹的列表,第三项为该路径下文件的列表

>>> import os
>>> for item in os.walk(r"E:\素材"):
    print(item)

('E:\\素材', ['游戏人生', '表情包'], ['035曦红柿【人女】导入图.jpg', 'code-wallpaper-8.jpg'])
('E:\\素材\\游戏人生', ['图片'], [])
('E:\\素材\\游戏人生\\图片', [], ['5ab5c9ea15ce36d380894f9931f33a87e850b18e.jpg', '7af40ad162d9f2d387245a7fa2ec8a136327cc6d.jpg', 'c64edcc451da81cb9482033c5e66d016082431ff.jpg'])

os.rename(oldname,newname)

重命名文件或目录

os.stat(filepath)

返回文件属性信息对象

>>> import os
>>>> os.stat("C:\\aow_drv.log")
os.stat_result(st_mode=33206, st_ino=41376821576981610, st_dev=2818738962, st_nlink=1, st_uid=0, st_gid=0, st_size=4429383, st_atime=1556684018, st_mtime=1556684018, st_ctime=1556619281)
>>> state = os.stat("C:\\aow_drv.log")
>>> state.st_mode
33206
>>> state.st_size
4429383

os.system(command)

运行系统命令,在Windows中相当于cmd命令,命令成功执行则返回0,否则返回1

>>> import os
>>> os.system("Notepad.exe")

os.popen(command)

同样是运行系统命令,但返回执行结果内容,通过 .read() 获取

>>> import os
>>> result = os.popen("ipconfig")
>>> result.read()
'\nWindows IP 配置\n\n\n以太网适配器 以太网:\n\n   媒体状态  . . . . . . . . . . . . : 媒体已断开连接\n   连接特定的 DNS 后缀 . . . . . . . : \n\n以太网适配器 VirtualBox Host-Only Network:\n\n   连接特定的 DNS 后缀 . . . . . . . : \n   本地链接 IPv6 地址. . . . . . . . : fe80::61c7:10ea:8fe9:d802%9\n   IPv4 地址 . . . . . . . . . . . . : 192.168.56.1\n   子网掩码  . . . . . . . . . . . . : 255.255.255.0\n   默认网关. . . . . . . . . . . . . : \n\n无线局域网适配器 本地连接* 1:\n\n   媒体状态  . . . . . . . . . . . . : 媒体已断开连接\n   连接特定的 DNS 后缀 . . . . . . . : \n\n无线局域网适配器 本地连接* 2:\n\n   媒体状态  . . . . . . . . . . . . : 媒体已断开连接\n   连接特定的 DNS 后缀 . . . . . . . : \n\n无线局域网适配器 WLAN:\n\n   连接特定的 DNS 后缀 . . . . . . . : lan\n   本地链接 IPv6 地址. . . . . . . . : fe80::fd93:45be:3220:a352%5\n   IPv4 地址 . . . . . . . . . . . . : 10.10.10.144\n   子网掩码  . . . . . . . . . . . . : 255.255.255.0\n   默认网关. . . . . . . . . . . . . : 10.10.10.1\n\n以太网适配器 蓝牙网络连接:\n\n   媒体状态  . . . . . . . . . . . . : 媒体已断开连接\n   连接特定的 DNS 后缀 . . . . . . . : \n'
推荐阅读
关注数
0
文章数
13
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息