Python os标准库基础教程

目录

1. os.path 模块

2. os.mkdir() ,os.makedirs() 方法

3. os.rmdir(),os.remove(),os.removedirs() 方法

4. os.getcwd() 方法

5. os.listdir() 方法

os 标准库的主要功能:

1. 系统变量相关操作;   2. 文件和目录相关操作;   3. 执行命令和管理进程

常用的模块和方法如下:

1. os.path 模块

os.path 模块主要用于获取文件的属性。以下是 os.path 模块的几种常用方法:

方法说明
os.path.abspath(path)返回绝对路径
os.path.basename(path)返回文件名
os.path.dirname(path)返回文件路径
os.path.exists(path)如果路径 path 存在,返回 True;如果路径 path 不存在或损坏,返回 False。
os.path.lexists(path)路径存在则返回 True,路径损坏也返回 True
os.path.expanduser(path)把 path 中包含的 ~ 和 ~user 转换成用户目录
os.path.expandvars(path)根据环境变量的值替换 path 中包含的 $name 和 ${name}
os.path.getatime(path)返回最近访问时间(浮点型秒数)
os.path.getmtime(path)返回最近文件修改时间
os.path.getctime(path)返回文件 path 创建时间
os.path.getsize(path)返回文件大小,如果文件不存在就返回错误
os.path.isabs(path)判断是否为绝对路径
os.path.isfile(path)判断路径是否为文件
os.path.isdir(path)判断路径是否为目录
os.path.islink(path)判断路径是否为链接
os.path.ismount(path)判断路径是否为挂载点
os.path.join(path1[, path2[, ...]])把目录和文件名合成一个路径
os.path.normcase(path)转换path的大小写和斜杠
os.path.normpath(path)规范path字符串形式
os.path.realpath(path)返回path的真实路径
os.path.relpath(path[, start])从start开始计算相对路径
os.path.samefile(path1, path2)判断目录或文件是否相同
os.path.sameopenfile(fp1, fp2)判断fp1和fp2是否指向同一文件
os.path.samestat(stat1, stat2)判断stat tuple stat1和stat2是否指向同一个文件
os.path.split(path)把路径分割成 dirname 和 basename,返回一个元组
os.path.splitdrive(path)一般用在 windows 下,返回驱动器名和路径组成的元组
os.path.splitext(path)分割路径,返回路径名和文件扩展名的元组
os.path.splitunc(path)把路径分割为加载点与文件
os.path.walk(path, visit, arg)遍历path,进入每个目录都调用visit函数,visit函数必须有3个参数(arg, dirname, names),dirname表示当前目录的目录名,names代表当前目录下的所有文件名,args则为walk的第三个参数

以下实例演示了 os.path 相关方法的使用:

import os
 
print( os.path.basename('/root/runoob.txt') )   # 返回文件名
print( os.path.dirname('/root/runoob.txt') )    # 返回目录路径
print( os.path.split('/root/runoob.txt') )      # 分割文件名与路径
print( os.path.join('root','test','runoob.txt') )  # 将目录和文件名合成一个路径


runoob.txt
/root
('/root', 'runoob.txt')
root/test/runoob.txt
import os
import time
 
file='/root/runoob.txt' # 文件路径
 
print( os.path.getatime(file) )   # 输出最近访问时间
print( os.path.getctime(file) )   # 输出文件创建时间
print( os.path.getmtime(file) )   # 输出最近修改时间
print( time.gmtime(os.path.getmtime(file)) )  # 以struct_time形式输出最近修改时间
print( os.path.getsize(file) )   # 输出文件大小(字节为单位)
print( os.path.abspath(file) )   # 输出绝对路径
print( os.path.normpath(file) )  # 规范path字符串形式


1539052805.5735736
1539052805.5775735
1539052805.5735736
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=9, tm_hour=2, tm_min=40, tm_sec=5, tm_wday=1, tm_yday=282, tm_isdst=0)
7
/root/runoob.txt
/root/runoob.txt

2. os.mkdir() ,os.makedirs() 方法

os.mkdir() 方法用于以数字权限模式创建目录(单级目录)。默认的模式为 0777 (八进制)。如果目录有多级,则创建最后一级,如果最后一级目录的上级目录有不存在的,则会抛出一个 OSError。mkdir()方法语法格式如下:

os.mkdir(path, mode)
# path —— 要创建的目录,可以是相对或者绝对路径。
# mode —— 要为目录设置的权限数字模式。

import os
path = "/tmp/home/monthly/daily/hourly"
os.mkdir(path);

os.makedirs() 方法用于递归创建目录。如果子目录创建失败或者已经存在,会抛出一个 OSError 的异常,Windows上Error 183 即为目录已经存在的异常错误。如果第一个参数 path 只有一级,则与mkdir() 函数相同。

3. os.rmdir(),os.remove(),os.removedirs() 方法

os.rmdir() 方法用于删除指定路径的目录。仅当这文件夹是空的才可以, 否则, 抛出OSError。rmdir()方法语法格式如下:

os.rmdir(path)
# path —— 要删除的目录路径

import os, sys

# 列出目录
print("目录为: %s", os.listdir(os.getcwd()))
# 删除路径
os.rmdir("mydir")
# 列出重命名后的目录
print("目录为: %s" , os.listdir(os.getcwd()))

目录为:
[  'a1.txt','resume.doc','a3.py','mydir' ]
目录为:
[  'a1.txt','resume.doc','a3.py' ]

os.remove() 方法用于删除指定路径的文件。如果指定的路径是一个目录,将抛出 OSError。

os.removedirs() 方法用于递归删除目录。像rmdir(), 如果子文件夹成功删除, removedirs()才尝试它们的父文件夹,直到抛出一个error(它基本上被忽略,因为它一般意味着你文件夹不为空)。

4. os.getcwd() 方法

os.getcwd() 方法用于返回当前工作目录。getcwd()方法语法格式如下:

os.getcwd()

5. os.listdir() 方法

os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。它不包括 .  .. 即使它在文件夹中。只支持在 Unix, Windows 下使用。listdir()方法语法格式如下:

os.listdir(path)
# path —— 需要列出的目录路径


import os, sys

# 打开文件
path = "/var/www/html/"
dirs = os.listdir( path )
# 输出所有文件和文件夹
for file in dirs:
   print (file)

test.htm
stamp
faq.htm
_vti_txt
robots.txt
itemlisting
resumelisting
writing_effective_resume.htm
advertisebusiness.htm
papers
resume

参考资料:Python OS 文件/目录方法 | 菜鸟教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值