Python常用库之os

本文介绍了Python中的os库,重点讲解了os.walk()函数的使用,包括其参数含义及如何遍历目录树。示例代码展示了如何进行文件时间相关操作。

使用前需导入os库

import os
#os库常用命令:
os.getcwd()  #获取当前路径
'C:\\Users\\dsChen'
os.linesep  #行分隔符
'\r\n'
os.pathsep  #不同路径间的分隔符
';'
os.sep  #路径中的分隔符
'\\'
os.chdir("g:\\test")  #切换当前工作路径
os.pardir  #上级目录
'..'
os.chdir('..') / os.chdir(os.pardir)  #切到上级目录,两个等价
os.name  #操作系统
'nt'  #windows系统
'posix'  #mac系统
os.mkdir("e:\\testmanman")  #创建目录,不能建多级目录
os.makedirs("e:\\testman\\1\\2\\3")  #一次建多级目录
os.rmdir("e:\\testmanman")   #删除目录,只能删除空目录
os.removedirs("e:\\testman\\1\\2\\3)   #也只能删除空目录
os.listdir("g:\\test")  #这个目录下的所有文件和目录,以列表形式返回
os.rename("g:\\test\\a\\b\\222.txt","g:\\test\\a\\b\\223.txt")  #重命名,后面的即修改后的文件名必须不存在,不然报错,文件已存在
os.stat("g:\\test\\a\\b\\224.txt")  #获取文件相关信息
os.system("ver")  #系统版本
os.system("tree")  #用tree形式展示当前工作目录
os.system("tail -10 a.txt > b.txt")  #a.txt最后10行写入b.txt
os.environ  #环境变量
#判断是否有读、写、执行权限
print (os.access(r'c:\gloryroadtest.txt', os.W_OK))
print (os.access(r'c:\gloryroadtest.txt', os.R_OK))
print (os.access(r'c:\gloryroadtest.txt', os.X_OK))
os.popen(command [,,mode='r' [, bufsize]])  #运行shell命令,并返回一个文件对象。然后通过操作文件的方法去操作这个文件对象。
#返回屏幕上显示的内容
dirList = os.popen('ipconfig')
for i in dirList.readlines():
    print(i)

在这里插入图片描述
os.walk(top,topdown=True,οnerrοr=None,followlinks=False)
os.walk 返回绝对路径,路径下目录列表,路径下文件列表

参数说明:
top:表示需要遍历的目录树的路径。
topdown的默认值是“True”,表示首先返回目录树下的文件,然后遍历目录树下的子目录。值设为False时,则表示先遍历目录树下的子目录,返回子目录下的文件,最后返回根目录下的文件。
onerror的默认值是“None”,表示忽略文件遍历时产生的错误。如果不为空,则提供一个自定义函数提示错误信息后继续遍历或抛出异常中止遍历。
该函数返回一个列表,列表中的每一个元素都是一个元组,该元组有3个元素,分表表示每次遍历的路径名,目录列表和文件列表。
默认情况下,os.walk不会遍历软链接指向的子目录,若有需要需将followlinks设定为True
代码示例:

import os
for root,dirs,files in os.walk("g:\\test",topdown=False):
    print("当前目录:“",root)  #打印目录绝对路径
    for name in files:
        print("文件名:",os.path.join(root,name))  #打印文件绝对路径
    for name in dirs:
        print("目录名:",name  #打印目录绝对路径)

在这里插入图片描述

abspath("a.txt")  #获取绝对路径
>>>os.path.split('G:\\test\\11.txt')  #拆分路径名和文件名
('G:\\test','11.txt')
>>>os.path.split('G:\\test\\11.txt')[0]
'G:\\test'
>>>os.path.split('G:\\test\\11.txt')[1]
'11.txt'
>>>os.path.basename('G:\\test\\11.txt')  #文件名
'11.txt'
>>>os.path.dirname('G:\\test\\11.txt')  #路径
'G:\\test'
#os.path.splitext('G:\\test\\11.txt')  #拆分绝对路径+文件名和文件后缀
>>> os.path.splitext('G:\\test\\11.txt')
('G:\\test\\11', '.txt')
os.path.splitdrive('G:\\test\\11.txt')  #拆分盘符和绝对路径+文件名
>>> os.path.splitdrive('G:\\test\\11.txt')
('G:', '\\test\\11.txt')

import os
import os.path
#当前执行文件名
print(__file__)
#当前执行文件名绝对路径
print(os.path.abspath(__file__))
#当前执行文件路径
print(os.path.dirname(os.path.abspath(__file__)))
#当前执行文件名
print(os.path.basename(os.path.abspath(__file__)))

os.path.exists('G:\\test\\11.txt')  #判断文件是否存在
os.path.isabs('G:\\test\\11.txt')  #判断是否绝对路径
os.path.isfile('G:\\test\\11.txt') / os.path.isdir('G:\\test\\11.txt')  #判断是否是文件/目录
os.path.getsize('G:\\test\\11.txt')  #文件/目录大小,用之前判断是文件还是目录,是文件有用,目录没什么用
os.path.join("e:\\","a.txt")  #连接路径和文件名
'e:\\a.txt'

#文件时间相关操作

import os
import time
#获取文件最后访问时间
# lastTime = os.path.getatime(r"g:\test.py")
#获取文件创建时间
# lastTime = os.path.getctime(r"g:\test.py")
# 获取文件修改时间
lastTime = os.path.getmtime(r"g:\test.py")
print (lastTime)
#将时间戳转成时间元组
formatTime = time.localtime(lastTime)
print (formatTime)
#格式化时间元组为时间字符串
print (time.strftime("%Y-%m-%d %H:%M:%S",  formatTime))
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值