如何获取最新文件

Mar*_*zae 4 python file

我是Python语言的新手,我需要编写一个代码,列出包含随机名称的文件的目录,例如:

JuniperAccessLog-standalone-FCL_VPN-20120319-1110.gz
JuniperAccessLog-standalone-FCL_VPN-20120321-1110.gz

我需要获取更新的文件

我试试这个,但没有成功.

import os
from datetime import datetime 

t = datetime.now()
archive = t.strftime("JuniperAccessLog-standalone-FCL_VPN-%Y%m%d-%H*.gz")
file = os.popen(archive)
Run Code Online (Sandbox Code Playgroud)

结果:

sh: JuniperAccessLog-standalone-FCL_VPN-20120320-10*.gz: command not found
Run Code Online (Sandbox Code Playgroud)

有可能使用这个逻辑吗?

Mat*_*ttH 8

如果您想要最新的文件,您可以利用它们似乎按日期时间顺序排序的事实:

import os

logdir='.' # path to your log directory

logfiles = sorted([ f for f in os.listdir(logdir) if f.startswith('JuniperAccessLog-standalone-FCL_VPN')])

print "Most recent file = %s" % (logfiles[-1],)
Run Code Online (Sandbox Code Playgroud)


Bur*_*lid 0

glob将执行您在 popen 调用中尝试执行的操作。

import os
import glob
from datetime import datetime 

t = datetime.now()
archive = t.strftime("JuniperAccessLog-standalone-FCL_VPN-%Y%m%d-%H*.gz")
files = glob.glob(archive)
for f in files:
   # do something with f
Run Code Online (Sandbox Code Playgroud)