os模块的作用:
- os,语义为操作系统,主要是对操作系统的调用.
- os模块不受平台限制,想要获取文件当前所在路径,命令方式在windows下为
dir
, 在linux下为pwd
,使用python中os模块的os.path.abspath(name)功能,不管是linux或者Windows都可以获取当前的绝对路径。
os模块
有关路径
# 获取当前的工作目录,类似linux中的pwd;
os.getcwd()
# 改变当前工作目录,类似linux的cd
os.chdir('..')
# 返回当前路径,结果为'.'
os.curdir
# 返回当前路径的上一级路径,结果为'..'
os.pardir
有关目录
# 在当前目录下创建目录test1,也可以指定绝对路径,比如:/mnt/test1;
os.mkdir('test1')
# 如果想要创建test2/test3目录时,上面的创建目录操作就会直接报错,
# 因此如何实现递归创建目录,调用下面的函数即可.
os.makedirs('test2/test3')
# 删除当前目录下的test1目录,也可以指定绝对路径,比如:/mnt/test1;
os.rmdir('test1')
# 删除递归创建的目录test2/test3,如果目录为空,则删除,并递归到上一级目录,如果还为空,依次删除.
os.removedirs('test2/test3')
# 列出当前目录的内容,类似linux的ls;
os.listdir('/mnt')
有关文件
# 删除hello文件,删除的文件也可以通过绝对路径指定;
os.remove('hello')
相关属性
# 文件或目录重命名, 下面是将hello文件重命名为hello1文件。
os.rename('hello', 'hello1')
# 文件或目录属性查看,
# 返回值为:posix.stat_result(st_mode=16893, st_ino=807628007, st_dev=2051L, st_nlink=2, st_uid=1000, st_gid=1000, st_size=6, st_atime=1501747596, st_mtime=1501747596, st_ctime=1501747596)
os.stat('hello')
# 获取hello文件的大小,其他属性信息依次类推;
os.stat('hello').st_size
有关平台
# 输出操作系统指定的路径分隔符,win下为'\\',linux下为'/';
os.sep
# 输出当前平台使用的行终止符, win下为'\t\n', linux下为'\n';
os.linesep
# 输出用于分割文件路径的字符串
os.pathsep
# 输出当前使用平台,win下为'nt', linux下为'posfix'
os.name
# 运行shell命令,直接返回执行结果
os.system('df -h')
# 获取当前环境变量
os.environ
os.path模块
有关路径
# 返回一个文件或目录的绝对路径;
os.path.abspath('hello')
# 分离某个绝对路径,返回结果为元组类型,(目录, 文件名), 即('/home/kisok','hello');
os.path.split('/home/kiosk/hello')
# 返回/home/kiosk/hello所在目录,即'/home/kiosk';
os.path.dirname('/home/kiosk/hello')
# 返回/home/kiosk/hello中的文件名,即'hello';如果路径以'/'或'\'结尾,返回值为空;
os.path.basename('/home/kiosk/hello')
# 查看某个文件或目录是否存在,若存在返回True,否则返回False;
os.path.exists('/mnt/hello')
# 查看某个路径是否为绝对路径,如果是绝对路径返回True,否则返回False;
os.path.isabs('/mnt/hello')
# 将多个路径组合后返回,组合结果为/a/hello.md
os.path.join('/a','hello.md')
有关文件类型
# 查看是否为文件类型,如果是返回True,否则返回False;
os.path.isfile('/etc/passwd')
# 查看是否为目录,如果是返回True, 否则返回False;
os.path.isdir('/etc/passwd')
# 查看是否为链接文件,如果是返回True,否则返回False;
os.path.islink('/etc/passwd')
# 查看某个目录是否有设备挂载
os.path.ismount('/mnt')
获取文件的时间戳
# 获取文件的创建(create)时间戳
os.path.getatime('/etc/passwd')
# 获取文件改变(change)时间戳
os.path.getctime('/etc/passwd')
# 获取文件修改(modify)时间戳
os.path.getmtime('/etc/passwd')
# 获取文件大小
os.path.getsize('/etc/passwd')