共计 2928 个字符,预计需要花费 8 分钟才能阅读完成。
一、os 中常用属性和方法
作用:包含了基本的操作系统功能,提供了非常丰富的方法用来处理文件和目录
-
属性
名称 说明 name 操作系统的类型,nt 表示 windows,posix 表示 Linux、Unix uname 获取操作系统的信息,linux、Unix 下使用 environ 获取系统中的环境变量,environ.get() 可以获取环境变量的值 curdir 返回当前的目录 -
方法
名称 说明 getcwd() 返回当前工作目录的绝对路径 listdir() 返回指定目录下的所有文件和目录 mkdir() 创建指定目录,注意目录已经存在时会报错,目录路径中存在不存在的层级时报错 rmdir() 删除目录,注意目录不存在则报错 rename() 重命名 stat() 获取文件属性 remove() 删除普通文件 system() 运行 shell 命令 -
示例
import os # 操作系统的类型 # nt windows # posix Linux、Unix print(os.name) # 获取操作系统的信息,linux、Unix 下使用 print(os.uname()) # 获取系统中的环境变量 print(os.environ) # 获取指定环境变量的值 print(os.environ.get("PATH")) # 返回当前的目录 print(os.curdir) # 返回当前工作目录的绝对路径 print(os.getcwd()) # 返回指定目录下的所有文件和目录 print(os.listdir(r"C:\Users\sunck\Desktop\code")) # 创建指定目录,注意目录已经存在时会报错,目录路径中存在不存在的层级时报错 os.mkdir(r"C:\Users\sunck\Desktop\file") os.mkdir(r"C:\Users\sunck\Desktop\file\a\b") # 删除目录,注意目录不存在则报错 os.rmdir(r"C:\Users\sunck\Desktop\file") # 重命名 os.rename(r"C:\Users\sunck\Desktop\code\file1.txt", r"C:\Users\sunck\Desktop\code\file2.txt") # 获取文件属性 print(os.stat(r"C:\Users\sunck\Desktop\code\file2.txt")) # 删除普通文件 os.remove(r"C:\Users\sunck\Desktop\code\file2.txt") # 运行 shell 命令 os.system("notepad") os.system("shutdown -s -t 10") os.system("shutdown -a")
二、os.path 中常用方法
操作文件和目的函数一部分在 os 模块中,还有一部分在 os.path 中
名称 | 说明 |
---|---|
abspath | 返回指定路径的绝对路径 |
join | 拼接路径(不论是否存在) |
split | 拆分路径(不论是否存在) |
splitdrive | 以路径第一个’/’ 为分隔,分隔驱动器名与路径 |
splitext | 获取文件的扩展名(不论是否存在) |
basename | 获取目录或文件名(不论是否存在) |
getsize | 获取属性 |
getctime | 获取属性 |
isdir | 判断是否是目录 |
isfile | 判断是否是文件 |
exists | 判断目录和文件是否存在 |
isabs | 判断是否是绝对路径(不论是否存在) |
import os
# 返回指定路径的绝对路径
print(os.path.abspath("."))
# 拼接路径(不论是否存在)
print(os.path.join(r"C:\Users\sunck\Desktop\file", "a.txt"))
# 拆分路径(不论是否存在)
print(os.path.split(r"C:\Users\sunck\Desktop\file"))
print(os.path.split(r"C:\Users\sunck\Desktop\file\sunck.txt"))
# 以路径第一个 '/' 为分隔,分隔驱动器名与路径
print(os.path.splitdrive(r"C:\Users\sunck\Desktop\file"))
print(os.path.splitdrive(r"C:\Users\sunck\Desktop\file\sunck.txt"))
# 获取文件的扩展名(不论是否存在)
print(os.path.splitext(r"C:\Users\sunck\Desktop\file"))
print(os.path.splitext(r"C:\Users\sunck\Desktop\file\sunck.txt"))
# 获取目录名(不论是否存在)
print(os.path.basename(r"C:\Users\sunck\Desktop\file"))
# 获取文件名(不论是否存在)
print(os.path.basename(r"C:\Users\sunck\Desktop\file\sunck.txt"))
# 获取属性
print(os.path.getsize(r"C:\Users\sunck\Desktop\code\test.py"))
print(os.path.getctime(r"C:\Users\sunck\Desktop\code\test.py"))
# 判断是否是目录
print(os.path.isdir(r"C:\Users\sunck\Desktop\code"))
print(os.path.isdir(r"C:\Users\sunck\Desktop\file"))
print(os.path.isdir(r"C:\Users\sunck\Desktop\code\test.py"))
# 判断是否是文件
print(os.path.isfile(r"C:\Users\sunck\Desktop\code\test.py"))
print(os.path.isfile(r"C:\Users\sunck\Desktop\code\1.txt"))
print(os.path.isfile(r"C:\Users\sunck\Desktop\code"))
# 判断目录和文件是否存在
print(os.path.exists(r"C:\Users\sunck\Desktop\code\test.py"))
print(os.path.exists(r"C:\Users\sunck\Desktop\code\2.py"))
print(os.path.exists(r"C:\Users\sunck\Desktop\code"))
print(os.path.exists(r"C:\Users\sunck\Desktop\file"))
# 判断是否是绝对路径(不论是否存在)
print(os.path.isabs(r"C:\Users\sunck\Desktop\code"))
print(os.path.isabs(r"C:\Users\sunck\Desktop\file"))
print(os.path.isabs(r".\code"))
正文完
星哥玩云-微信公众号