我目前有一个脚本,用于检查和比较目录和文件的修改时间。我该怎么做,以便递归文件和目录也将被检查。当前,仅检查根目录。
import os
import time, stat
source_dir = 'C:/Mydirectory'
# current time - last modified time
dtime = time.time() - os.stat(source_dir)[stat.ST_MTIME]
if dtime <= 30: # 30 seconds
print("Found modification in last 30 seconds.")
run_here()
答案 0 :(得分:0)
也许使用os.scandir
处理目录树中的每个条目。
with os.scandir(source_dir) as it:
for entry in it:
dtime = time.time() - entry.stat()[stat.ST_MTIME]
[...]
答案 1 :(得分:0)
os.walk()
可以帮助您遍历源目录。可以这样
import os
import time, stat
source_dir = 'C:/Mydirectory'
for currentdir, dirs, files in os.walk(source_dir):
for file in files:
currentfile = os.path.join(currentpath, file)
# current time - last modified time
dtime = time.time() - os.stat(currentfile )[stat.ST_MTIME]
if dtime <= 30: # 30 seconds
print("Found modification in last 30 seconds for file =>", currentfile)
for folder in dirs:
currentfolder = os.path.join(currentpath, folder)
# current time - last modified time
dtime = time.time() - os.stat(currentfolder)[stat.ST_MTIME]
if dtime <= 30: # 30 seconds
print("Found modification in last 30 seconds for folder =>", currentfolder )
答案 2 :(得分:0)
以下是使用os
和Python 3中的lsitdir()
函数在当前目录中检索文件的简单方法。
import os
import time, stat
source_dir = 'C:/Mydirectory'
# current time - last modified time
with os.listdir(source_dir) as it:
for entry in it:
dtime = time.time() - os.stat(entry.path)[stat.ST_MTIME]
if dtime <= 30: # 30 seconds
print("Found modification in last 30 seconds.")
run_here()
答案 3 :(得分:0)
您应该使用listdir
来查找并浏览当前目录中的所有文件和目录。我相信您正在寻找这样的东西:
import os
import time, stat
source_dir = 'C:/Mydirectory'
def recursiveScan(dir):
# current time - last modified time
dtime = time.time() - os.stat(dir)[stat.ST_MTIME]
if dtime <= 30: # 30 seconds
print("Found {} was modified in last 30 seconds.".format(dir))
run_here()
for file in os.listdir(dir):
try:
recursiveScan(dir+"/"+file)
except:
continue
recursiveScan(source_dir)