os模块的方法
方法 |
说明 |
os.listdir(path) |
取得指定文件夹下的文件列表 |
os.mkdir(path) |
创建一个名为path的文件夹 |
os.open(file, flags) |
打开一个文件,并且设置需要的打开选项 |
os.replace() |
重命名文件或目录 |
os.remove(path) |
删除路径为path的文件。如果path 是一个文件夹,将抛出OSError |
os.removedirs(path) |
递归删除目录 |
os.rename(src, dst) |
重命名文件或目录,从 src 到 dst |
os.renames(old, new) |
递归地对目录进行更名,也可以对文件进行更名。 |
os.rmdir(path) |
删除path指定的空目录,如果目录非空,则抛出一个OSError异常 |
os.getcwd() |
返回当前工作目录 |
os.utime(path, times) |
返回指定的path文件的访问和修改的时间 |
os.path()模块的方法
方法 |
说明 |
os.path.abspath(path) |
返回绝对路径 |
os.path.basename(path) |
返回文件名 |
os.path.dirname(path) |
返回文件路径 |
s.path.exists(path) |
路径存在则返回True,路径损坏返回False |
os.path.getatime(path) |
返回最近访问时间(浮点型秒数) |
os.path.getmtime(path) |
返回最近文件修改时间 |
os.path.getctime(path) |
返回文件 path 创建时间 |
os.path.isabs(path) |
判断是否为绝对路径 |
os.path.isfile(path) |
判断路径是否为文件 |
os.path.isdir(path) |
判断路径是否为目录 |
os.path.join(path1[, path2[, ...]]) |
把目录和文件名合成一个路径 |
os.path.normcase(path) |
转换path的大小写和斜杠 |
os.path.realpath(path) |
返回path的真实路径 |
os.path.samefile(path1, path2) |
判断目录或文件是否相同 |
os.path.sameopenfile(fp1, fp2) |
判断fp1和fp2是否指向同一文件 |
os.path.split(path) |
把路径分割成 dirname 和 basename,返回一个元组 |
os.path.splitext(path) |
分割路径中的文件名与拓展名 |
os.path.walk(path, visit, arg) |
遍历path,进入每个目录都调用visit函数,visit函数必须有3个参数(arg, dirname, names),dirname表示当前目录的目录名,names代表当前目录下的所有文件名,args则为walk的第三个参数 |
os.path.sep |
获取当前系统路径分隔符 |
使用示例
示例一:简单使用
import os.path
import time
file = '/Users/qingmu/Desktop/运营/auto_work/text/read.txt'
print(os.path.abspath(__file__))
>>> /Users/qingmu/Desktop/运营/auto_work/text/dir.py
print(os.path.dirname(os.path.abspath(__file__)))
>>> /Users/qingmu/Desktop/运营/auto_work/text
print(os.path.basename(file))
>>> read.txt
print(os.path.dirname(file))
>>> /Users/qingmu/Desktop/运营/auto_work/text
print(os.path.split(file))
>>> ('/Users/qingmu/Desktop/运营/auto_work/text', 'read.txt')
print(os.path.splitext(os.path.basename(file)))
>>> ('read', '.txt')
print(os.path.join("lechang", "text", "read.txt"))
>>> lechang/text/read.txt
print(os.path.getatime(file))
>>> 1651410393.1434963
print(os.path.getctime(file))
>>> 1651410391.844215
print(os.path.getmtime(file))
>>> 1651410391.844215
print(time.gmtime(os.path.getmtime(file)))
>>> time.struct_time(tm_year=2022, tm_mon=5, tm_mday=1, tm_hour=13, tm_min=6, tm_sec=31, tm_wday=6, tm_yday=121, tm_isdst=0)
print(os.path.getsize(file))
>>> 74
示例二:获取文件夹下指定条件的文件
获取指定文件下所有包含“名单”,并且后缀名为.xls的文件
file_path = "/Users/lechang/Desktop/dir"
old_names = os.listdir(file_path)
for old_name in old_names:
if old_name.endswith(".xls") and "名单" in old_name:
print(old_name)