在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电话号码?