向上遍历目录结构,直到到达文件系统顶部

2024-10-03 06:32:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经创建了一个脚本,它在每个目录的最高层备份后设置“标志”。在

现在我需要一个可以在“任何目录”中运行的脚本,它可以通过读取“标志”的最后修改时间来告诉我“上次成功备份运行的时间”。在

当然,我也可以手动找出我当前目录所在的文件系统,然后在目录层次结构中向上移动,直到到达文件系统的顶层目录并在那里找到标志文件,但这不是很方便。我想编写的命令也会执行相同的操作,但会自动执行。在

1)在到达文件系统顶层之前,我不知道如何执行在目录结构上向上遍历的部分。在

2)读取国旗时间可能会像这样工作:

import time
fileTileInSeconds = os.path.getmtime("FLAG")   (not sure)
ModDate = time.localtime(fileTileInSeconds)
print ModDate.tm_year,ModDate.tm_mon,ModDate.tm_mday,ModDate.tm_hour,ModDate.tm_min,ModDate.tm_sec
quit()

如有任何意见/建议,将不胜感激。在


Tags: 文件命令目录脚本层次结构time标志时间
1条回答
网友
1楼 · 发布于 2024-10-03 06:32:00

使用os.path.parent进入目录树,并使用os.stat查看每个目录所在的设备。当设备发生变化时,您已经越过了文件系统的边界。像这样:

#!/usr/bin/python

import os
import stat
import sys

def find_mount(path):
    path = os.path.realpath(path)
    s = os.stat(path)[stat.ST_DEV]
    ps = s
    while path != '/' and ps == s:
        parent = os.path.dirname(path)
        ps = os.stat(parent)[stat.ST_DEV]
        if ps == s:
            path = parent
    return path

if __name__ == "__main__":
    for path in sys.argv[1:]:
        print find_mount(path)

相关问题 更多 >