OS模块

导入模块

在实际的工作中,经常需要调用系统的命令,查询系统信息,对文件和路径进行操作,就需要调用os模块。导入模块,很简单:

import os

常见方法总结如下

获取系统类型

os.name:获取当前系统类型,Windows是’nt’,Linux/Unix是’posix’。

>>> os.name
'nt'

注意:name后面没有括号

获取系统环境变量

os.environ:获取系统环境变量,同样也可以调用方法更新,设置指定的环境变量

print(os.environ) #打印系统所有环境变量
print(os.environ.get('APPDATA')) #打印指定环境变量

获取当前目录

os.getcwd()获取当前路径,即当前Python脚本工作目录。

>>> os.getcwd()
'G:\\Education\\byhy\\Courseware\\Improvement\\Python'

os.path模块

获取绝对路径

os.path.abspath(path):获取path的绝对路径

# 查看当前的绝对路径
print("****"*8)
print(os.path.abspath('.')) # 当前目录
print(os.path.abspath('..')) # 上层目录
print(os.path.abspath('./os2.py')) # 当前文件
print(os.path.abspath('./test1')) # 子目录

输出结果

G:\Education\BYHY\Courseware\Improvement\Python\03os
G:\Education\BYHY\Courseware\Improvement\Python
G:\Education\BYHY\Courseware\Improvement\Python\03os\os2.py
G:\Education\BYHY\Courseware\Improvement\Python\03os\test1

路径拼接

os.path.join: 路径拼接

# 拼接路径
p1 = r'G:\Education\BYHY\Courseware\Improvement\Python\03os'
fileName = 'test.py'
print(os.path.join(p1,fileName)) #filename不能有'\'

输出结果:

G:\Education\BYHY\Courseware\Improvement\Python\03os\test.py

拆分路径

os.path.split: 返回一个元组,可以获取文件的路径文件名

filePath = r'G:\Education\BYHY\Courseware\Improvement\Python\03os\os2.py'
print(os.path.split(filePath)) # 返回元组, 路径及文件名

输出结果

('G:\\Education\\BYHY\\Courseware\\Improvement\\Python\\03os', 'os2.py')

os.path.splitext: 返回一个元组,可以获取文件扩展名

filePath = r'G:\Education\BYHY\Courseware\Improvement\Python\03os\os2.py'
print(os.path.splitext(filePath)) # 返回元组,文件扩展名

输出结果

('G:\\Education\\BYHY\\Courseware\\Improvement\\Python\\03os\\os2', '.py')

os.path.dirname: 获取文件目录

filePath = r'G:\Education\BYHY\Courseware\Improvement\Python\03os\os2.py'
print(os.path.dirname(filePath)) # 返回文件目录

输出结果

G:\Education\BYHY\Courseware\Improvement\Python\03os

os.path.basename:获取文件名

filePath = r'G:\Education\BYHY\Courseware\Improvement\Python\03os\os2.py'
print(os.path.basename(filePath)) # 返回文件名

输出结果:

os2.py

是否为目录

os.path.isdir: 判断是否为目录

filePath = r'G:\Education\BYHY\Courseware\Improvement\Python\03os\os2.py'
# 判断是否为目录
print(os.path.isdir(filePath)) #目录为True

输出结果:

False

是否为文件

os.path.isfile:判断是否为文件

filePath = r'G:\Education\BYHY\Courseware\Improvement\Python\03os\os2.py'
# 判断是否为文件
print(os.path.isfile(filePath)) #文件为True

输出结果:

True

是否存在

os.path.exists:判断目录或文件是否存在

filePath = r'G:\Education\BYHY\Courseware\Improvement\Python\03os\os2.py'
# 判断目录或文件是否存在
print(os.path.exists(filePath)) # 存在为True

输出结果:

True

列举文件

os.listdir(path): 列举目录下的所有文件。返回的是列表类型

# 列举目录下的所有文件。返回的是列表类型
print("****"*8)
print(os.listdir('.'))
print("===="*8)

输出结果

********************************
['os1.py', 'os2.py', 'test', 'test1']
================================

删除目录

os.rmdir: 删除目录 os.mkdir: 创建目录

curPath = os.getcwd()
filePath = os.path.join(curPath,'test')
if os.path.exists(filePath):
    print('Exist, remove')
    # os.remove(filePath)
    os.rmdir('test')
else:
    print('do not exist, create')
    os.mkdir('test')

删除文件

os.remove: 删除文件

curPath = os.getcwd()
filePath = os.path.join(curPath,'test.txt')
if os.path.exists(filePath):
    print('Exist, delete file')
    os.remove(filePath)
else:
    print('do not exist, create the file')
    fh = open('test.txt','w')
    fh.write('Let us start to enjoy python')
    fh.close()

获取文件属性

os.stat:获取文件属性

# 获取文件属性
print(os.stat('os1.py'))

输出结果:

os.stat_result(st_mode=33206, st_ino=6755399441365863, st_dev=380720062, st_nlink=1, st_uid=0, st_gid=0, st_size=1301, st_atime=1545040424, st_mtime=1545040424, st_ctime=1529815626)


微信扫码分享本文




上一页 下一页