Python 中的sys、os、os.path模块总结

sys:系统

  • 命令行参数List,第一个元素是程序本身路径:sys.argv
  • 退出程序,正常退出时exit(0):sys.exit(n)
  • 获取Python解释程序的版本信息:sys.version
  • 最大int值:sys.maxsize | sys.maxint
  • 环境变量:sys.path
  • 操作系统平台名称:sys.platform

os:操作系统

生成单级目录:os.mkdir(‘dirname’)
生成多层目录:os.makedirs(‘dirname1/…/dirnamen2’)
重命名:os.rename(“oldname”,“newname”)
工作目录:os.getcwd()
删除单层空目录:os.rmdir(‘dirname’)
移除多层空目录:os.removedirs(‘dirname1/…/dirnamen’)
列举目录下所有资源:os.listdir(‘dirname’)
路径分隔符:os.sep
行终止符:os.linesep
文件分隔符:os.pathsep
操作系统名:os.name
操作系统环境变量:os.environ
执行shell脚本:os.system()

  • 生成单级目录:os.mkdir(path[, mode])

    以数字mode的mode创建一个名为path的文件夹.默认的 mode 是 0777 (八进制)。path-- 要创建的目录 ;mode – 要为目录设置的权限数字模式

只存在文件路径'E:\StudySpace\Code'
import os
os.mkdir(r'E:\StudySpace\Code\aaaa')
print('创建成功')
结果:文件夹创建成功

只存在文件路径'E:\StudySpace\Code'
import os
os.mkdir(r'E:\StudySpace\Code\aaa\bbb')
print('创建成功')
结果:报错[WinError 3] 系统找不到指定的路径。

os.mkdir('a/b/c')  
在上面路径中a,b文件夹必须存在,c文件夹必须不存在
  • 生成多层目录:os.makedirs(‘dirname1/…/dirnamen2’)

    递归文件夹创建函数。像mkdir(), 但创建的所有intermediate-level文件夹需要包含子文件夹。

import os
os.makedirs('a/b/c')
在上面路径中如果a,b,c文件夹全存在,程序会则报错。a和b文件夹存在与否都可以创建文件夹'a/b/c'
  • 重命名:os.rename(“oldname”,“newname”)

    重命名文件或目录,从 src 到 dst

import os
os.rename("111","222")  # 重名名
  • 工作目录:os.getcwd()

    返回当前工作目录。

import os
print(os.getcwd())  # 当前工作目录
  • 删除单层空目录:os.rmdir(‘dirname’)

    删除path指定的空目录,如果目录非空,则抛出一个OSError异常。

import os
os.rmdir(r'D:\fullstack\part1\bbb')  # 删除文件夹
  • 移除多层空目录:os.removedirs(‘dirname1/…/dirnamen’)

    递归删除目录。

import os
os.removedirs('a/b/c')  

c空,删c,b也变成空,也可以被删除,以此类推,如果b不为空,删除c后就停止操作
  • 列举目录下所有资源:os.listdir(‘dirname’)

    返回path指定的文件夹包含的文件或文件夹的名字的列表。

import os
res = os.listdir(r'C:')
print(res)
'''
输出:
['$GetCurrent', '$RECYCLE.BIN', 'AppData', 'Program Files',  'Users', 'Windows', ]
'''
  • 路径分隔符:os.sep
import os
print(os.sep)  
输出: \
  • 行终止符:os.linesep
import os
print(ascii(os.linesep))  
输出: \r\n
  • 文件分隔符:os.pathsep
import os
print(os.pathsep)  
输出: ;
  • 操作系统名:os.name

  • 操作系统环境变量:os.environ

  • 执行shell脚本:os.system()

import os
print(os.system('dir'))

相当于在cmd的当前文件夹下执行“dir

os.path:系统路径操作

执行文件的当前路径:__ file __
返回path规范化的绝对路径:os.path.abspath(path)
将path分割成目录和文件名二元组返回:os.path.split(path)
上一级目录:os.path.dirname(path)
最后一级名称:os.path.basename(path)
指定路径是否存在:os.path.exists(path)
是否是绝对路径:os.path.isabs(path)
是否是文件:os.path.isfile(path)
是否是路径:os.path.isdir(path)
路径拼接:os.path.join(path1[, path2[, …]])
最后存取时间:os.path.getatime(path)
最后修改时间:os.path.getmtime(path)
目标大小:os.path.getsize(path)

import os.path

  • 执行文件的当前路径:__ file __
先将项目的根目录设置为常量 -> 项目中的所有目录与文件都应该参照次目录进行导包
BASE_PATH = os.path.dirname(os_path.dirname(__file__))
print(BASE_PATH)
sys.path.append(BASE_PATH)
# 重点:将项目目录添加至环境变量
  • 返回path规范化的绝对路径:os.path.abspath(path)
print(os.path.abspath(r'a'))
  • 将path分割成目录和文件名二元组返回:os.path.split(path)
# ('D:\\fullstack\\part1', '系统模块.py')
print(os.path.split(r'D:\fullstack\part1\系统模块.py'))
# ('D:/fullstack/part1', '系统模块.py')
print(os.path.split(r'D:/fullstack/part1/系统模块.py'))
# ('D:/fullstack/part1', '系统模块.py')
print(os.path.split(r'D:\fullstack\part1'))
# ('D:\\fullstack/part1', '')
print(os.path.split(r'D:\fullstack\part1\\'))
  • 上一级目录:os.path.dirname(path)
print(os.path.dirname(os_path.dirname(r'D:\fullstack\part1\a\b')))
  • 最后一级名称:os.path.basename(path)
print(os.path.basename(r'D:\fullstack\part1\a\b'))
  • 指定路径是否存在:os.path.exists(path)
print(os.path.exists(r'D:\fullstack\part1'))
print(os.path.exists(r'D:\fullstack\part1\时间模块.py'))
  • 是否是绝对路径:os.path.isabs(path)
print(os.path.isabs(r'a'))
print(os.path.isabs(r'D:\fullstack\part1\a'))
  • 是否是文件:os.path.isfile(path)
print(os.path.isfile(r'D:\fullstack\part1'))
print(os.path.isfile(r'D:\fullstack\part1\时间模块.py'))
  • 是否是路径:os.path.isdir(path)
print(os.path.isdir(r'D:\fullstack\part1'))
print(os.path.isdir(r'D:\fullstack\part1\时间模块.py'))
  • 路径拼接:os.path.join(path1[, path2[, …]])
print(os.path.join(r'D:\fullstack\part1', 'a', 'b'))

print(os.path.normcase('c:/windows\\system32\\'))
# 通过normcase来添加项目根目录到环境变量
BASE_PATH1 = os.path.normpath(os.path.join(__file__, '..', '..'))
print(BASE_PATH1)
sys.path.append(BASE_PATH1)
  • 最后存取时间:os.path.getatime(path)
print(os.path.getamtime(r'D:\fullstack\part1\时间模块.py'))
  • 最后修改时间:os.path.getmtime(path)
print(os.path.getmtime(r'D:\fullstack\part1\时间模块.py'))
  • 目标大小:os.path.getsize(path)
print(os.path.getsize(r'D:\fullstack\part1\时间模块.py'))
重点:
BASE_PATH = os.path.dirname(os.path.dirname(__file__))
sys.path.append(BASE_PATH)
BASE_PATH1 = os.path.normpath(os.path.join(__file__, '..', '..'))
sys.path.append(BASE_PATH1)

猜你喜欢

转载自blog.csdn.net/linwow/article/details/89191992