Os库的学习
os模块提供了对目录或者文件的新建/删除/查看文件属性,还提供了对文件以及目录的路径操作。比如说:绝对路径,父目录…… 但是,os文件的操作还应该包含移动 复制 打包 压缩 解压等操作,这些os模块都没有提供。
主要内容:os.path.join os.path.exists os.listdir os.mkdir
一开始想要利用pip指令安装这个库,但是总是提示错误
后来度娘之后发现Os是内置库,我大概学的是个假Python…
由于在JupyterNotebook上面得到的路径都些许的奇怪
明明应该给我的结果是这种格式
所以这部分代码我都在PyCharm里面运行了
python os库的使用方法_CSDN
1、路径操作
os.path子库以path为入口,用于操作和处理文件路径
函数 | 描述 |
---|---|
os.path.abspath(path) | 返回path在当前系统中的绝对路径os.path.abspath('第四周学习记录.txt') 输出:'E:\20年暑假学习\第四周\PyCharm\第四周学习记录.txt’ 关于这个语句有一些疑问 但其实’第四周学习记录.txt’的路径是E:\Amusement\Python\第四周学习记录.txt, 这个函数 os.path.abspath(path) 返回的路径是我创建的Pycharm程序的路径(因为我是用这个路径下的Pycharm运行的这段代码),但是这个路径下并没有’第四周学习记录.txt’这个文件 |
os.path.normpath(path) | 归一化path的表示形式,统一用\分割路径os.path.normpath(r'E:\Amusement\Python\第四周学习记录.txt') 输出:'E:\Amusement\Python\第四周学习记录.txt’ os.path.normpath('E://Amusement//Python//第四周学习记录.txt') 输出:‘E:\Amusement\Python\第四周学习记录.txt’ |
os.path.relpath(path) | 返回当前程序与文件之间的相对路径(relative path)os.path.relpath(r'E:\Amusement\Python\第四周学习记录.txt') 输出:’…\Amusement\Python\第四周学习记录.txt’ |
os.path.dirname(path) | 返回path中的目录名称os.path.dirname(r'E:\Amusement\Python\第四周学习记录.txt') 输出:‘E:\Amusement\Python’ |
os.path.basename(path) | 返回path中最后的文件名称,如果最后一级也是目录,则返回目录名称os.path.basename(r'E:\Amusement\Python\第四周学习记录.txt') 输出:'第四周学习记录.txt’ os.path.basename(r'E:\Amusement\Python') 输出:‘Python’ |
os.path.split(path) | 返回path中目录和文件名称,如果path最后一集也是目录,则都返回目录名称如果path只有根路径,返回根路径和空路径os.path.split(r'E:\Amusement\Python\第四周学习记录.txt') 输出:’(‘E:\Amusement\Python’, ‘第四周学习记录.txt’)‘ os.path.split(r'E:\Amusement\Python') 输出:’(‘E:\Amusement’, ‘Python’)‘ os.path.split(r'E:') 输出:’(‘E:’, ‘’)’ |
os.path.join(path, *paths) | 组合path和paths,返回一个路径字符串os.path.join(r'E:', r'\Amusement\Python\第四周学习记录.txt') 输出:‘E:\Amusement\Python\第四周学习记录.txt’ |
os.path.exists(path) | 判断path对应文件或目录是否存在,返回True或Falseos.path.exists('第四周学习记录.txt') # 不在此程序的目录下 输出:'False’os.path.exists('Test.txt') # 在此程序的目录下 输出:‘True’ |
os.path.isfile(path) | 判断path所对应是否为已存在的文件,返回True或Falseos.path.isfile(r'E:\Amusement\Python\第四周学习记录.txt') 输出:‘True’ |
os.path.isdir(path) | 判断path所对应是否为已存在的目录,返回True或Falseos.path.isdir(r'E:\Amusement\Python') 输出:‘True’ |
os.path.getmtime(path) | 返回path对应文件或目录最近一次的修改时间os.path.getmtime(r'E:\Amusement\Python\第四周学习记录.txt') 输出:‘1596015422.8338652’ |
os.path.getatime(path) | 返回path对应文件或目录上一次的访问时间os.path.getatime(r'E:\Amusement\Python\第四周学习记录.txt') 输出:‘1596015422.8338652’ |
os.path.getctime(path) | 返回path对应文件或目录创建时间。windows系统中,上一次访问时间等于创建时间os.path.getctime(r'E:\Amusement\Python\第四周学习记录.txt') 输出:‘1596012914.8609786’ |
os.path.getsize(path) | 返回path对应文件的大小,以字节为单位os.path.getsize(r'E:\Amusement\Python\第四周学习记录.txt') 输出:‘96’ |
PyCharm中可执行代码如下
import os
# 返回path在当前系统中的绝对路径
# 但其实'第四周学习记录.txt'的路径是E:\Amusement\Python\第四周学习记录.txt,
# 这个函数返回的路径是我创建的Pycharm程序的路径
# (因为我是用这个路径下的Pycharm运行的这段代码),
# 但是这个路径下并没有'第四周学习记录.txt'这个文件
print(os.path.abspath('第四周学习任务.docx'))
print(os.path.abspath('第四周学习记录.txt'))
# 归一化path的表示形式,统一用\分割路径
print(os.path.normpath(r'E:\530实验室\政源学长\20年暑假学习\第四周\PyCharm\第四周学习任务.docx'))
print(os.path.normpath('E://530实验室//政源学长//20年暑假学习//第四周//PyCharm//第四周学习任务.docx'))
print(os.path.normpath(r'E:\Amusement\Python\第四周学习记录.txt'))
print(os.path.normpath('E://Amusement//Python//第四周学习记录.txt'))
# 返回当前程序与文件之间的相对路径(relative path)
print(os.path.relpath(r'E:\Amusement\Python\第四周学习记录.txt'))
# 返回path中的目录名称
print(os.path.dirname(r'E:\Amusement\Python\第四周学习记录.txt'))
# 返回path中最后的文件名称,如果最后一级也是目录,则返回目录名称
print(os.path.basename(r'E:\Amusement\Python\第四周学习记录.txt'))
print(os.path.basename(r'E:\Amusement\Python'))
# 返回path中目录和文件名称,如果path最后一集也是目录,
# 则都返回目录名称如果path只有根路径,返回根路径和空路径
print(os.path.split(r'E:\Amusement\Python\第四周学习记录.txt'))
print(os.path.split(r'E:\Amusement\Python'))
print(os.path.split(r'E:'))
# 组合path和paths,返回一个路径字符串
print(os.path.join(r'E:', r'\Amusement\Python\第四周学习记录.txt'))
# 判断path对应文件或目录是否存在,返回True或False
print(os.path.exists('第四周学习记录.txt')) # 不在此程序的目录下
print(os.path.exists('Test.txt')) # 在此程序的目录下
# 判断path所对应是否为已存在的文件,返回True或False
print(os.path.isfile(r'E:\Amusement\Python\第四周学习记录.txt'))
print(os.path.isfile(r'E:\Amusement\Python')) # 这里的路径是文件夹的路径,函数的结构为False
# 判断path所对应是否为已存在的目录,返回True或False
print(os.path.isdir(r'E:\Amusement\Python'))
# 返回path对应文件或目录最近一次的修改时间
print(os.path.getmtime(r'E:\Amusement\Python\第四周学习记录.txt')) # 1596015422.8338652
# 返回path对应文件或目录上一次的访问时间
print(os.path.getatime(r'E:\Amusement\Python\第四周学习记录.txt')) # 1596015422.8338652
# 返回path对应文件或目录创建时间。windows系统中,上一次访问时间等于创建时间
print(os.path.getctime(r'E:\Amusement\Python\第四周学习记录.txt')) # 1596012914.8609786
# 返回path对应文件的大小,以字节为单位
print(os.path.getsize(r'E:\Amusement\Python\第四周学习记录.txt')) # 96
2、进程管理
os.system(command)
- 执行程序或命令command
- 在windows系统中,返回值为cmd的调用返回信息
如下例,调用计算器返回值为0
import os
os.system(r'C:\Windows\system32\calc.exe') # 打开计算器 返回值为0
调用网易云音乐,成功打开但是出现了很多错误提示
import os
os.system(r'D:\ProgramFiles\CloudMusic\cloudmusic.exe')
- 部分错误提示:
- 调用Arctime Pro但是失败了
import os
os.system(r'D:\ProgramFiles\ARCTIME_PRO_2.4_WIN64\Arctime Pro.exe')
3、环境参数
- 这部分没有整理完!!
未整理完!!!
(1)os.mkdir()
概述
os.mkdir() 方法用于以数字权限模式创建目录。默认的模式为 0777 (八进制)。
数字权限管理(Digital Rights Management)是保护多媒体内容免受未经授权的播放和复制的一种方法。
语法
os.mkdir(path[, mode])
参数
- path – 要创建的目录
- mode – 要为目录设置的权限数字模式
返回值
没有返回值
实例
import os, sys
path = "E:\Amusement\TestMkdir"
os.mkdir(path, 0o755);
(2)os.listdir()
概述
返回指定的文件夹包含的文件或文件夹的名字的列表
语法
os.listdir(path)
参数
- path – 需要列出的目录路径
返回值
返回指定路径下的文件和文件夹列表
实例
# 返回path目录下所有文件 以列表形式输出
import os
print(os.listdir(r'E:\Amusement'))
# 一个为一行输出
import os
# 打开文件
path = "E:\Amusement"
dirs = os.listdir(path)
# 输出所有的文件和文件夹
for file in dirs:
print(file)