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)