os是python的内置模块,它提供了与操作系统相关的接口,可与操作系统进行交互,例如对系统文件目录的操作,新建,修改,删除文件夹和文件,os.system可以执行系统命令。
操作系统路径分隔符,在不同的操作系统上,路径分割符是不一样的。windows系统是\\, linux系统和mac是/
获取正在使用的工作平台,windows下是nt,linux/unix环境下是posix
读取环境变量
获取当前工作路径
>>> import os
>>> os.sep
'/'
>>> os.name
'posix'
>>> os.getenv('PATH')
'/Library/Frameworks/Python.framework/Versions/3.6/bin:/usr/local/var/pyenv/shims:/opt/local/bin:/opt/local/sbin:/opt/local/sbin:/opt/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Users/kwsy/Qt5.5.0/5.5/clang_64/bin:/usr//bin/ChromeDriver:/Users/kwsy/.rvm/bin:/Users/kwsy/.rvm/bin:/usr/bin/:/Users/kwsy/rc_tool/rd_tools/arcanist/bin'
>>> os.getcwd()
'/Users/kwsy/PycharmProjects/pythonclass/mytest'
对文件夹进行增删改查操作
获取指定目录下的所有文件和目录名,如果不指定目录,则目录默认为当前所在目录
import os
os.listdir()
os.listdir('/Users/kwsy/')
创建一个目录(文件夹)
import os
os.mkdir('test')
删除一个目录,如果目录里有文件,则无法删除
import os
os.rmdir('test')
生成多层递归目录,这个方法与mkdir一样,都可以创建目录,不同之处在于mkdir只能创建一层目录,而makedirs可以创建多层。比如你想在目录A下创建一个目录B,用着两个方法都可以,但如果想在A目录下创建一个多层目录C/D/E, 就只能用os.makedirs().它会先创建C,然后在C下面创建D,在D下面创建E
import os
os.makedirs('test/demo/demo2')
递归删除多层目录,但若干目录中有文件则无法删除
import os
os.removedirs('test/demo/demo2')
改变当前目录,切换到其他目录,和linux系统下的cd 命令是同样的效果
修改目录或者文件的名字
import os
os.rename('demo.py', 'demo2.py')
将文件demo.py修改为demo2.py
os.path提供了对文件和目录更加强大的操作
方法名 | 功能作用 |
---|---|
os.path.exists(path) | 判断path是否存在,path既可以是目录,也是是文件,如果存在返回True,反之返回False |
os.path.isfile(path) | 判断path是否是文件,如果是返回True |
os.path.isdir(path) | 判断path是否是目录,如果是返回True |
os.path.isabs(path) | 判断路径是否是绝对路径 |
os.path.basename(path) | 获取文件名 |
os.path.dirname(path) | 获取路径名 |
os.path.getsize(path) | 获取文件大小 |
os.path.getatime(path) | 获取最近访问时间 |
os.path.getctime(path) | unix是最新的元数据更改的时间,windows系统下是文件创建时间 |
os.path.getmtime(path) | 获取文件内容最近修改时间 |
os.path.abspath(path) | 获取绝对路径 |
os.path.split(path) | 分割路径 |
os.path.splitext(path) | 分割文件名,返回由文件名和扩展名组成的元组 |
os.path.join() | 拼接路径 |
示例代码
import os
path = '/Users/kwsy/kwsy/coolpython/test.py'
print(os.path.basename(path)) # 获取文件名
print(os.path.dirname(path)) # 获取路径名
print(os.path.getsize(path)) # 获取文件大小
print(os.path.getatime(path)) # 获取最近访问时间
print(os.path.getctime(path)) # unix是最新的元数据更改的时间,windows系统下是文件创建时间
print(os.path.getmtime(path)) # 获取文件内容最近修改时间
print(os.path.abspath(path)) # 获取绝对路径
print(os.path.split(path)) # 分割路径
print(os.path.splitext(path)) # 分割文件名,返回由文件名和扩展名组成的元组
print(os.path.join('/Users/kwsy/kwsy/coolpython', 'test.py'))
程序输出结果
test.py
/Users/kwsy/kwsy/coolpython
707
1575863105.0
1575862477.0
1575862477.0
/Users/kwsy/kwsy/coolpython/test.py
('/Users/kwsy/kwsy/coolpython', 'test.py')
('/Users/kwsy/kwsy/coolpython/test', '.py')
/Users/kwsy/kwsy/coolpython/test.py
QQ交流群: 211426309