Python菜鸟编程第五课之OS模块
OS模块是Python被指控中用于访问操作系统功能的模块。
使用OS模块提供的接口,能够实现跨平台访问。
常见的操作:
- 目录操作
- 判断
1.1系统操作
系统操作 | 描述 | windows | 其他 |
---|---|---|---|
os.sep | 用于查看系统路径的分隔符 | ‘\’ | ubuntu: ‘/’ |
os.name | 显示正在使用的平台 | ‘nt’ | Linux/Uinx:‘posix’ |
os.getenv() | 读取环境变量(environment) | ||
os.getcwd() | 获取当前路径 |
demo:
print(os.sep)
print(os.name)
print(os.getcwd())
运行结果:
\
nt
D:\PyCharm\BClass\PXClass\2019-7-22
1.2目录操作
目录操作 | 描述 |
---|---|
os.listdir() | 返回指定目录下的所有文件和目录名,默认返回当期位置下的文件和目录名 |
os.mkdir() | 创建目录,但仅创建一级目录 |
os.makedirs() | 创建目录,可以创建多级目录 |
os.rmdir() | 删除空目录(一级) |
os.removedirs() | 删除空目录(多级) |
os.remove() | 删除文件,必须是文件 |
os.chdir() | 将当前目录更改到指定目录 |
os.rename(old_name,new_name) | 重命名 |
demo1:
#os.listdir()
print(os.listdir())#不给予参数,默认返回当前位置下的文件和目录名
file='D:/PyCharm/BClass/PXClass/2019-7-22/file'
print(os.listdir(file))#给予了参数,返回指定目录下的文件和目录名
运行结果:
['daylystudy.py', 'fibnum.py', 'file', '__pycache__']
['GreenFlowerPorcelain.txt', 'test.txt', '青花瓷.txt']
demo2:
#os.mkdir()、os.makedirs()
os.mkdir('test')
os.makedirs('test/test')
print(os.listdir())
print(os.listdir('D:/PyCharm/BClass/PXClass/2019-7-22/test'))
运行结果:
['daylystudy.py', 'fibnum.py', 'file', 'test', '__pycache__']
['test']
demo3:
#os.rmdir()
os.rmdir('test/test')
print(os.listdir())
运行结果:
['daylystudy.py', 'fibnum.py', 'file', 'test', '__pycache__']
demo4:
#os.chdir()
print(os.getcwd())
os.chdir('..')#两个点表示返回上级目录
print(os.getcwd())
运行结果:
D:\PyCharm\BClass\PXClass\2019-7-22
D:\PyCharm\BClass\PXClass
demo5:
#os.rename(old_name,new_name)
print(os.listdir())
os.rename('test','test1')
print(os.listdir())
运行结果:
['daylystudy.py', 'fibnum.py', 'file', 'test', '__pycache__']
['daylystudy.py', 'fibnum.py', 'file', 'test1', '__pycache__']
1.3判断文件
函数名 | 描述 |
---|---|
os.path.exists() | 判断文件或者目录是否存在,若存在返回True,否则False |
os.path.isfile() | 判断是否为文件,若存在返回True,否则False |
os.path.isdir() | 判断是否为目录,若存在返回True,否则False |
demo1:
#os.path.exists()
print(os.listdir())
print(os.path.exists('fibnum.py'))
print(os.path.exists('aa.py'))
print(os.path.exists('test1'))
运行结果:
['daylystudy.py', 'fibnum.py', 'file', 'test1', '__pycache__']
True
False
True
demo2:
#os.path.isfile()、os.path.isdir()
print(os.listdir())
print(os.path.isfile('fibnum.py'))
print(os.path.isdir('test1'))
运行结果:
['daylystudy.py', 'fibnum.py', 'file', 'test1', '__pycache__']
True
True
1.4拓展
函数名 | 描述 |
---|---|
os.path.dirname() | 返回文件路径 |
os.path.basename() | 返回文件名称 |
os.path.getsize() | 返回文件大小 |
os.path.abspath() | 返回文件的绝对路径 |
os.path.join() | 将目录与文件名或目录连接 |
os.path.split() | 将path的目录和文件名分隔开,并返回元组 |
os.path.getmtime() | 返回文件或者目录的最后修改时间,结果为秒数 |
os.path.getatime() | 返回文件或者目录的最后访问时间,结果为秒数 |
os.path.getctime() | 返回文件或者目录的最后创建时间,结果为秒数 |
os.walk() | 获取文件和目录 |
demo1:
print(os.path.basename('fibnum.py'))
print(os.path.getsize('fibnum.py'))
print(os.path.abspath('fibnum.py'))
print(os.path.join('test1','fibnum.py'))
print(os.path.split('D:/PyCharm/BClass/PXClass/2019-7-22/test'))
运行结果:
fibnum.py
110
D:\PyCharm\BClass\PXClass\2019-7-22\fibnum.py
test1\fibnum.py
('D:/PyCharm/BClass/PXClass/2019-7-22', 'test')
demo2:
#os.path.getmtime()、os.path.getatime()、os.path.getctime()
import time
print(os.path.getmtime('fibnum.py'))
print(os.path.getatime('fibnum.py'))
print(os.path.getctime('fibnum.py'))
运行结果:
2019-07-22 17:23:24
2019-07-22 17:23:24
2019-07-22 17:17:44
demo3:
paths=os.walk('..')
for i in paths:
print(i)
运行结果:
('..', ['2019-7-17', '2019-7-18', '2019-7-19', '2019-7-20', '2019-7-22'], [])
('..\\2019-7-17', [], ['1.py', '2.py', '3.py', '4.py', '5.py', '6.py', '7.py'])
('..\\2019-7-18', [], ['1.py', '2.py'])
('..\\2019-7-19', [], ['1.py'])
('..\\2019-7-20', [], ['1.py', '2.py', '3.py', '4.py', '5.py'])
('..\\2019-7-22', ['file', 'test1', '__pycache__', '新建文件夹'], ['daylystudy.py', 'fibnum.py'])
('..\\2019-7-22\\file', [], ['GreenFlowerPorcelain.txt', 'test.txt', '青花瓷.txt'])