os

os模块提供了与操作系统相关的功能,本教程李,目录和文件夹是同一个意思。

1. 系统操作相关

1.1 os.sep

操作系统路径分隔符,在不同的操作系统上,路径分割符是不一样的。windows系统是\\, linux系统和mac是/

1.2 os.name

获取正在使用的工作平台,windows下是nt,linux/unix环境下是posix

1.3 os.getenv()

读取环境变量

1.4 os.getcwd()

获取当前工作路径

1.5 示例代码

>>> 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'

2. 目录操作

对文件夹进行增删改查操作

2.1 os.listdir()

获取指定目录下的所有文件和目录名,如果不指定目录,则目录默认为当前所在目录

import os

os.listdir()
os.listdir('/Users/kwsy/')

2.1 os.mkdir()

创建一个目录(文件夹)

import os

os.mkdir('test')

2.2 os.rmdir()

删除一个目录,如果目录里有文件,则无法删除

import os

os.rmdir('test')

2.3 os.makedirs()

生成多层递归目录,这个方法与mkdir一样,都可以创建目录,不同之处在于mkdir只能创建一层目录,而makedirs可以创建多层。比如你想在目录A下创建一个目录B,用着两个方法都可以,但如果想在A目录下创建一个多层目录C/D/E, 就只能用os.makedirs().它会先创建C,然后在C下面创建D,在D下面创建E

import os

os.makedirs('test/demo/demo2')

2.4 os.removedirs()

递归删除多层目录,但若干目录中有文件则无法删除

import os

os.removedirs('test/demo/demo2')

2.5 os.chdir()

改变当前目录,切换到其他目录,和linux系统下的cd 命令是同样的效果

2.6 os.rename()

修改目录或者文件的名字

import os

os.rename('demo.py', 'demo2.py')

将文件demo.py修改为demo2.py

3. path模块

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

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案