OS模块
OS模块是Python标准库中用于访问操作系统功能的模块。
使用OS模块提供的接口,能够实现跨平台访问。
最常见的操作:
- 目录的操作
- 判断
1.系统操作
-
os.sep:用于查看系统路径的分隔符;
-
Window—>’\’
-
ubuntu—>’/’
-
-
os.name:显示我们正在使用的平台
- Window---->‘nt’
- Linux/Unix—>‘posix’
-
os.getenv()—>读取环境变量(environment)
-
os.getcwd()—>获取当前路径
2.目录操作—增删改查(direction)
- os.listdir():返回指定目录下的所有文件和目录名
import os
print(os.listdir()) # 未指定路径,默认当前路径
#['.idea', 'data', 'day01.py', 'day03.py', 'day04.py', 'day05.py', 'module_test.py', 'test.py', 'week01.py', '__pycache__']
dirs = "C:\\Users\\11980\Desktop\学习\python"
print(os.listdir(dirs)) # 指定路径下
#['JetBrains PyCharm 2018.1 x64.lnk', 'pip-19.1.1', 'python学习笔记', 'python安装', 'python安装.zip', 'typora', 'xmind', '作业', '周总结', '学习工具.zip', '短学期']
-
目录的创建:
- os.mkdir(path):创建目录,但仅创建一级目录;若文件已存在则报错
import os os.mkdir("os_test")
- os.makedirs(path):创建目录,创建多级目录;若文件已存在则报错
import os os.makedirs("main_file\sub_file")
-
目录/文件删除
- os.rmdir(path):删除空目录(一级),若不为空则报错
- os.removedirs(path):删除空目录(多级),若根目录下存在文件,则仅删除子目录
- os.remove(path):删除文件,必须是文件,不能删除目录
import os
os.rmdir('os_test')
os.removedirs('main_file\sub_file')
os.removedirs('data\李跃2.txt')
-
更改目录
- os.chdir(path):change direction # 将当前工作目录更改到指定的工作目录。
- os.rename(old_name, new_name):
import os os.chdir('..') os.listdir() #['dxq', 'test', 'test1'] os.chdir('./test1/data') os.rename('李跃.txt', 'liyue.txt')
3.判断文件
- os.path.exists(path):判断文件或者目录是否存在。存在,返回True;否则返回False
import os
print(os.path.exists('day01.py'))
#True
print(os.path.exists('day01.txt'))
#False
print(os.path.exists('data'))
#True
- os.path.isfile(path):判断是否为文件。是,返回True;否,返回False
import os
print(os.path.isfile('data'))
#False
print(os.path.isfile('day01.py'))
#True
- os.path.isdir(path):判断是否为目录。是,返回True;否,返回False
import os
print(os.path.isdir('data'))
#True
print(os.path.isdir('day01.py'))
#False
4.拓展:
- os.path.dirname(path):返回文件路径
- os.path.basename(path):去除路径返回文件名
- os.path.getsize(path):返回文件大小
- os.path.abspath(path):返回绝对路径
- os.path.join(path, name):路径的连接
- os.path.split(path):将path的目录和文件名称分割开,并返回元组
- 查看文件时间:
- os.path.getmtime(path):返回文件或者目录的最后修改时间,结果为秒数—>modify
- os.path.getatime(path):返回文件或者目录的最后访问时间,结果为秒数
- os.path.getctime(path):返回文件或者目录的创建时间,结果为秒数
- 获取文件和目录
- os.walk():文件目录遍历器
import os
print(os.path.dirname('D:\python\\test1\day01.py'))
#D:\python\test1
print(os.path.basename('D:\python\\test1\day01.py'))
#day01.py
print(os.path.getsize('day01.py'))
#7385
print(os.path.abspath('day01.py'))
#D:\python\test1\day01.py
print(os.path.join('D:\python\\test1', 'day01.py')) #仅做拼接,不对文件是否存在做判断
#D:\python\test1\day01.py
print(os.path.split('D:\python\\test1\day01.py'))
#('D:\\python\\test1', 'day01.py')
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(os.path.getmtime('D:\python\\test1\data\zucc.txt'))))
#2019-07-22 10:29:35
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(os.path.getatime('D:\python\\test1\data\zucc.txt'))))
#2019-07-22 10:22:46
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(os.path.getctime('D:\python\\test1\data\zucc.txt'))))
#2019-07-22 10:22:46
for i in os.walk('./'):
print(i)
#('./', ['.idea', 'data', 'main_file', 'os_test', '__pycache__'], ['day01.py', #'day03.py', 'day04.py', 'day05.py', 'module_test.py', 'test.py', 'week01.py'])
#('./.idea', ['inspectionProfiles'], ['encodings.xml', 'misc.xml', 'modules.xml', #'test1.iml', 'workspace.xml'])
#('./.idea\\inspectionProfiles', [], [])
#('./data', [], ['GreenFlowerPorcelain.txt', 'GreenFlowerPorcelain2.txt', #'liyue2.txt', 'test.txt', 'zucc.txt', '李跃2.txt', '青花瓷.txt'])
#('./main_file', ['sub_file'], [])
#('./main_file\\sub_file', [], [])
#('./os_test', [], [])
#('./__pycache__', [], ['module_test.cpython-36.pyc'])