第十四篇 os.path 模块

os.path 模块主要用于获取文件的属性。

以下是 os.path 模块的几种常用方法:

方法说明
os.path.abspath(path)返回绝对路径
os.path.basename(path)返回文件名
os.path.commonprefix(list)返回list(多个路径)中,所有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

 

  • 25
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码的作用是遍历指定文件夹中的,并将文件名写入到一个txt文件中1. 导入os模块:`import os` 这行代码是导入Python中的os模块,用处理文件和目录。 2 定义变量file_path:`file_path = "G:\datasets\lfb\ct\ct-224-png-data\JPEGImages"` 这行代码定义了一个变量file_path,存储了文件夹的路径。 3. 使用os.listdir(file_path)获取文件列表:`path_list = os.listdir(file_path)` 这行代码使用os.listdir()函数来获取指定文件夹下的所有文件和文件夹,返回一个列表。 4. 打印文件列表:`print(path_list)` 这行代码将文件列表打印出来,显示在控制台上。 5. 定义空列表path_name:`path_name = []` 这行代码定义了一个空列表path_name,用于存储文件名。 6. 定义函数saveList(pathName):`def saveList(pathName):` 这行代码定义了一个名为saveList的函数,接受一个名为pathName的参数。 7. 遍历文件列表,将文件名写入txt文件:`for file_name in pathName:` 这行代码使用for循环遍历传入的pathName列表中的每个元素,每次循环将当前元素赋值给变量file_name。 8. 打开txt文件并写入文件名:`with open("Image.txt", "a") as f:` 这行代码使用with语句打开一个名为Image.txt的文件,并以追加模式打开,将文件对象赋值给变量f。 9. 写入文件名到txt文件:`f.write(file_name.split(".")[0] + "\n")` 这行代码将当前文件名通过split(".")函数进行分割,取第一个部分(不包含扩展名),然后写入到文件中,并在末尾添加换行符。 10. 定义函数dirList(path_list):`def dirList(path_list):` 这行代码定义了一个名为dirList的函数,接受一个名为path_list的参数。 11. 遍历文件列表:`for i in range(0, len(path_list)):` 这行代码使用for循环遍历传入的path_list列表中的每个元素,每次循环将当前元素的索引赋值给变量i。 12. 构建完整路径:`path = os.path.join(file_path, path_list[i])` 这行代码使用os.path.join()函数将file_pathpath_list[i]合并成一个完整的路径,赋值给变量path。 13. 判断路径是否是文件夹:`if os.path.isdir(path):` 这行代码使用os.path.isdir()函数判断当前路径是否是一个文件夹。 14. 调用saveList函数:`saveList(os.listdir(path))` 如果是文件夹,则调用saveList函数,并传入该文件夹中的文件列表作为参数。 15. 调用saveList函数:`saveList(path_list)` 无论是否是文件夹,都调用saveList函数,并传入最初指定文件夹中的文件列表作为参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值