添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
today = datetime.datetime.now().isoformat() file_time = datetime.datetime.fromtimestamp(os.path.getmtime('/folders*')) if file_time < today: changedirectory('/folders*')

我不确定如何让它从现在开始检查最新的时间戳。有什么想法吗?

python
chrisg
chrisg
发布于 2010-01-07
6 个回答
Alex Martelli
Alex Martelli
发布于 2010-01-07
已采纳
0 人赞同

在大多数操作系统/文件系统中没有 "创建时间 "的实际记录:你得到的 mtime 是一个文件或目录的时间。 modified (例如,在一个目录中创建一个文件会更新该目录的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或更高版本)。

latest_subdir = max(all_subdirs, key=os.path.getmtime)

如果你需要在当前目录之外的其他地方进行操作,也没有什么不同,例如。

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

替换代码5】的赋值并没有改变,作为all_subdirs,任何路径列表 (不管是目录还是文件的路径,max的调用会得到最新修改的路径)。

如果正在使用的Python版本不支持 key 参数(例如2.4),你可以使用 latest_subdir = max((os.path.getmtime(f),f) for f in all_subdirs)[1]
Prem Anand
Prem Anand
发布于 2010-01-07
0 人赞同

一条线,找到最新的

# 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]
    
elec3647
elec3647
发布于 2010-01-07
0 人赞同

还有一个快速的单行本。

directory = 'some/path/to/the/main/dir'
max([os.path.join(directory,d) for d in os.listdir(directory)], key=os.path.getmtime)
    
Utsav
Utsav
发布于 2010-01-07
0 人赞同

Python Version 3.4+

我们可以尝试 路径 而解决方案将是单行的

找到最新的

import pathlib
max(pathlib.Path(directory).glob('*/'), key=os.path.getmtime)

获得第n个最新的

import pathlib
sorted(pathlib.Path(directory).glob('*/'), key=os.path.getmtime)[-n]
    
ghostdog74
ghostdog74
发布于 2010-01-07
0 人赞同

这里有一个找到最新目录的方法

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)
    
我也在寻找创建一个带有目录名称和时间戳的txt文件,这个txt文件将在我每30分钟运行上述脚本后被追加。我的目的是创建一个带有所有子目录名称和路径以及时间戳的txt文件。
Jonathan Feinberg
Jonathan Feinberg
发布于 2010-01-07
0 人赞同
import os, datetime, operator