OS文件和目录的操作

  • 改变当前目录
>>> import os
>>> os.chdir("e:\\qq1")   #改变当前工作目录到"e:\\qq1"
>>> os.getcwd()           #返回当前的工作目录
'e:\\qq1'
>>> os.chdir(os.pardir)   #改变目录到当前目录的父目录
>>> os.getcwd()
'e:\\'
  • 创建目录
>>> os.mkdir("e:\\aa\\aa1")   #生成单级目录aa1(aa目录必须存在)
>>>> os.makedirs("e:\\bb\\bb1")  #生成多层递归目录,父目录如果不存在,递归生成
  • 删除目录
>>> os.rmdir("e:\\qq")   #删除单级空目录,若目录不为空则无法删除,会报错。
>>> os.removedirs("e:\\qq1\\qq2\\qq3")   #若目录为空,则删除,并递归到上一级目录,如果上一级目录也为空,则删除,依次类推。
qq1(qq2(qq3)2.txt),删除之后显示的目录qq1(2.txt)
  • 删除文件
>>> os.remove("e:\\qq\\1.txt")   #只能删除文件,不能删除目录
  • 显示出指定目录下所有的文件和子目录
>>> os.listdir("e:\\qq1") 
列出指定目录下的所有文件和子目录,包括隐藏文件或目录,并以列 表形式返回。
(注意只有qq1目录下的目录和文件,再递归往下的不显示)
  • 获取系统配置
>>> os.system("dir E:\\qq1")  #运行shell命令(执行结果比较多,没有写)
>>> os.sep #输出操作系统特定的路径分隔符。Win下为“\”,Linux下为“/”
'\\'
>>> os.linesep #输出当前平台的行终止符。Win下为"\r\n",Linux下为"\n",Mac下为“\r”
'\r\n'
>>> os.environ  #获取系统环境变量(执行结果比较多,没有写)
  • 获取文件夹的路径和有多少文件
    os.walk(top, topdown=True, οnerrοr=None, followlinks=False)
    参数说明:
    ----top:表示需要遍历的目录树的路径。
    ----topdown的默认值是“True”,表示首先返回目录树下的文件,然后遍历目录树 下的子目录。值设为False时,则表示先遍历目录树下的子目录,返回子目录下的文件,最后返回根目录下的文件。
    ----onerror的默认值是“None”,表示忽略文件遍历时产生的错误。如果不为空, 则提供一个自定义函数提示错误信息后继续遍历或抛出异常中止遍历。
    ----该函数返回一个列表,列表中的每一个元素都是一个元组,该元组有3个元素,分别表示每次遍历的路径名,目录列表和文件列表。
    ----默认情况下,os.walk 不会遍历软链接指向的子目录,若有需要请将followlinks 设定为true。
import os
for root,dirs,files in os.walk("E:\\qq1"):  #默认topdown=True
    print("当前目录-->%s" %root)
    for name in dirs:
        print("当前目录的子目录-->%s" %os.path.join(root,name))
    for name in files:
        print("当前目录下的文件-->%s" %os.path.join(root,name))
    print()
"""执行结果:(qq1(qq2(qq3和3-1.txt)、2-1.txt和2-2.txt))
当前目录-->E:\qq1
当前目录的子目录-->E:\qq1\qq2
当前目录下的文件-->E:\qq1\2-1.txt
当前目录下的文件-->E:\qq1\2-2.txt

当前目录-->E:\qq1\qq2
当前目录的子目录-->E:\qq1\qq2\qq3
当前目录下的文件-->E:\qq1\qq2\3-1.txt

当前目录-->E:\qq1\qq2\qq3
"""
  • os.path…
os.path.abspath()返回path规范化的绝对路径(但这个路径不一定是真实存在的路径)
path是一个文件名,使用该函数后返回的路径则是当前工作目录路径连接该文件名后所组成的新路径名
>>> os.path.abspath("2-1.txt")  
'C:\\Users\\Administrator\\2-1.txt'
>>> os.path.abspath("e:\\qq1")
'e:\\qq1'
os.path.split()表示将path分割成目录和文件名
>>> tuple1=os.path.split("e:\\qq1\\2-1.txt")
>>> tuple1
('e:\\qq1', '2-1.txt')
>>> tuple1[0]
'e:\\qq1'
>>> tuple1[1]
'2-1.txt'
和上面的效果一样
>>> os.path.dirname("e:\\qq1\\2-1.txt")
'e:\\qq1'
>>> os.path.basename("e:\\qq1\\2-1.txt")
'2-1.txt'
>>> os.path.exists("e:\\qq1\\2-1.txt")   #判断是否存在
True
>>> os.path.isabs("e:\\qq1\\2-1.txt")    #判断是否是绝对路径
True
>>> os.path.isfile("e:\\qq1\\2-1.txt")   #判断是否是文件
True
>>> os.path.isdir("e:\\qq1\\2-1.txt")    #判断是否是目录
False
os.path.join(a, p)表示连接两个或更多的路径名,中间以“\”分隔,
如果所给的参数中都是绝对路径名, 那先给的绝对路径将会被丢弃。
>>> os.path.join("e:\\qq1","2-1.txt")
'e:\\qq1\\2-1.txt'
>>> os.path.join("e:\\qq1","e:\\2-1.txt")
'e:\\2-1.txt'
os.path.splitext(path)表示分离文件名和扩展名
>>> os.path.splitext("e:\\2-1.txt")
('e:\\2-1', '.txt')
os.path.splitdrive(path)表示 拆分驱动器和文件路径,并以元组返回结果;
主要针对win有效,Linux元组第一个总是空。
>>> os.path.splitdrive("e:\\2-1.txt")
('e:', '\\2-1.txt')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值