在Python中的目录中查找最新文件夹
我试图有一个自动脚本,进入最近创建的文件夹 下面我有一些代码在Python中的目录中查找最新文件夹,python,Python,我试图有一个自动脚本,进入最近创建的文件夹 下面我有一些代码 import datetime, os, shutil today = datetime.datetime.now().isoformat() file_time = datetime.datetime.fromtimestamp(os.path.getmtime('/folders*')) if file_time < today: changedirectory('/folders*') 导入日期时间
import datetime, os, shutil
today = datetime.datetime.now().isoformat()
file_time = datetime.datetime.fromtimestamp(os.path.getmtime('/folders*'))
if file_time < today:
changedirectory('/folders*')
导入日期时间、操作系统、软件
今天=datetime.datetime.now().isoformat()
file_time=datetime.datetime.fromtimestamp(os.path.getmtime('/folders*'))
如果文件时间<今天:
changedirectory('/folders*')
我不知道如何让这个检查最新的时间戳从现在开始。有什么想法吗
谢谢这里有一种查找最新目录的方法
import os
import time
import operator
alist={}
now = time.time()
directory=os.path.join("/home","path")
os.chdir(directory)
for file in os.listdir("."):
if os.path.isdir(file):
timestamp = os.path.getmtime( file )
# get timestamp and directory name and store to dictionary
alist[os.path.join(os.getcwd(),file)]=timestamp
# sort the timestamp
for i in sorted(alist.iteritems(), key=operator.itemgetter(1)):
latest="%s" % ( i[0])
# latest=sorted(alist.iteritems(), key=operator.itemgetter(1))[-1]
print "newest directory is ", latest
os.chdir(latest)
在大多数操作系统/文件系统中,没有“创建时间”的实际痕迹:您得到的
mtime
是文件或目录被修改的时间(例如,在目录中创建文件会更新目录的mtime)——并且从ctime
开始,当提供时,是最新inode更改的时间(因此,它将通过创建或删除子目录进行更新)
假设您对例如“last modified”(您在问题中使用的“created”只是一个错误)没有意见,您可以找到(例如)当前目录的所有子目录:
import os
all_subdirs = [d for d in os.listdir('.') if os.path.isdir(d)]
并获取具有最新mtime的(Python 2.5或更高版本):
如果您需要在当前目录以外的其他位置操作,则不会有太大的不同,例如:
def all_subdirs_of(b='.'):
result = []
for d in os.listdir(b):
bd = os.path.join(b, d)
if os.path.isdir(bd): result.append(bd)
return result
latest_subdir
分配不会改变给定的路径列表,因为all_subdir
(无论是目录路径还是文件路径,max
call都会获取最新修改的路径)。还有一个快速的一行程序:
directory = 'some/path/to/the/main/dir'
max([os.path.join(directory,d) for d in os.listdir(directory)], key=os.path.getmtime)
一艘班轮寻找最新的
# Find latest
import os, glob
max(glob.glob(os.path.join(directory, '*/')), key=os.path.getmtime)
一艘班轮寻找最新的
# Find n'th latest
import os, glob
sorted(glob.glob(os.path.join(directory, '*/')), key=os.path.getmtime)[-n]
Python版本3.4+
我们可以试试,解决办法是一条线
查找最新版本
import pathlib
max(pathlib.Path(directory).glob('*/'), key=os.path.getmtime)
import pathlib
sorted(pathlib.Path(directory).glob('*/'), key=os.path.getmtime)[-n]
获取第n个最新版本
import pathlib
max(pathlib.Path(directory).glob('*/'), key=os.path.getmtime)
import pathlib
sorted(pathlib.Path(directory).glob('*/'), key=os.path.getmtime)[-n]
谢谢Alex,这非常有效如果使用的Python版本不支持
键
参数(例如2.4),您可以在所有子目录中使用latest_subdir=max((os.path.getmtime(f),f)表示f)[1]
我还希望创建一个带有目录名和时间戳的txt文件。在我每30分钟运行一次上述脚本后,这个txt文件将被追加。我的目的是创建一个txt文件,其中所有子目录的名称和路径都有一行时间戳。如何使用上述代码作为时间戳变量gves some w电话号码?