os模块

Posted randysun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了os模块相关的知识,希望对你有一定的参考价值。

os模块

一、os模块

os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口,多用于文件处理。

作用 os模块: 与操作系统交互, 可以操控文件

import os
  1. 获取当前文件目录

    获取当前文件目录(打印不包含文件本身只会打印目录)
    print(os.getcwd())
  2. 创建文件夹

    # 创建一个文件夹(还可以实现创建文件如果不存在)
    os.mkdir('test')
  3. 删除文件夹

    os.rmdir('test')
  4. 列出所有文件

    # 列出当前文件所在目录中的所有文件(经常用到)
    res = os.listdir(r"G:\python学习\python基础\day017")
    print(res)
    
  5. 重命名

    #对文件进行重命名
    os.rename('user.py', 'test.py')
  6. 删除文件

    os.remove('test.py')
  7. __file__

    # 只有pychamr才提供,python本身不支持
    # 打印当前文件所在的目录,会包含文件本身
    print('__file__:', __file__)

    结果:

    G:/python学习/python基础/day017/os模块.py

  8. os.path.abspath()

# 1. 支持不同平台的文件路径会打印当前文件的目录包含文件(并且使用各个平台的文件表示路径)(windows,ios,andirod,linux,unix)

# 2. 返回当前文件所在的目录包含本身文件(绝对路径)
print(os.path.abspath(__file__))

结果:

G:\python学习\python基础\day017\os模块.py

  1. os.path.dirname()
# 打印当前文件所在的目录,不会包含所在的文件,但是路径只会适用当前系统
print(os.path.dirname(__file__))
  1. os.path.abspath()和 os.path.dirname()一起连用很重要
``` python
# os.path.dirname会把最后一个目录或文件去除
print(os.path.dirname(os.path.abspath(__file__)))
print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
```

结果:

G:\python学习\python基础\day017
G:\python学习\python基础
  1. os.path.join拼接字符串

    # 支持不同的平台(windows,ios,andirod,linux,unix),进行对路径拼接
    res = os.path.join(r'G:/python学习/python基础/day017', 'test2.py')

    结果:

    G:/python学习/python基础/day017\test2.py

  2. 判断文件是否存在os.path.exists

    # 判断文件是否存在,存在返回True,不存在返回False
    print(os.path.exists('test.py'))
  3. 判断文件是否是文件

    # 判断文件是否为文件
    print(os.path.isfile('test.py'))
  4. 判断是否是文件名

    # 判断文件是否是文件夹
    print(os.path.isdir('test.py'))
  5. 判断是否是文件夹

    print(os.path.isdir('test.py'))
  6. 循环遍历问价

    import os
    # g为迭代对象
    g = os.walk(r"G:/python学习/python基础/day017")
    for i in g:
        print(i)
方法 详解
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
os.curdir 返回当前目录: (‘.‘)
os.pardir 获取当前目录的父目录字符串名:(‘..‘)
os.makedirs(‘dirname1/dirname2‘) 可生成多层递归目录
os.removedirs(‘dirname1‘) 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir(‘dirname‘) 生成单级目录;相当于shell中mkdir dirname
os.rmdir(‘dirname‘) 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir(‘dirname‘) 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove() 删除一个文件
os.rename("oldname","newname") 重命名文件/目录
os.stat(‘path/filename‘) 获取文件/目录信息
os.sep 输出操作系统特定的路径分隔符,win下为"",Linux下为"/"
os.linesep 输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为:
os.name 输出字符串指示当前使用平台。win->‘nt‘; Linux->‘posix‘
os.system("bash command") 运行shell命令,直接显示
os.environ 获取系统环境变量
os.path.abspath(path) 返回path规范化的绝对路径
os.path.split(path) 将path分割成目录和文件名二元组返回
os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path) 如果path是绝对路径,返回True
os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间

os.path.getsize(path) 返回path的大小

以上是关于os模块的主要内容,如果未能解决你的问题,请参考以下文章

python模块--os模块sys模块

python之os模块

Python中常用的模块(OS模块)

python模块之os模块

Python内置模块--os模块的使用

python常用模块之OS模块