Python - 目录&文件(OS模块) 常用操作

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)))  # 以struct_time形式输出最近修改时间
>>> 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:                  # 循环获取到的所有文件名
    # 判断文件后缀为.xls,并且文件名包含"名单"
    if old_name.endswith(".xls") and "名单" in old_name:
        print(old_name)

猜你喜欢

转载自blog.csdn.net/weixin_44988085/article/details/129365825
今日推荐