Python找到最新的File并获得大小

时间:2013-12-06 00:11:26

标签: linux filesystems python log-files

我试图让python找到目录中的最新文件并获取文件大小。我使用“sorted”和“os.path”尝试了几种不同的方法,但似乎没有什么工作正常。这是示例代码。

 filepath='/path/to/files'

 files = sorted([ 
    f for f in os.listdir(filepath) if f.startswith('spam')])


 print "Most recent file = %s" % (files[-1],)

 recent = files[-1]

 filesize = os.path.getsize(recent)

 #print "File size = %s" % (filesize)

这会抓取最新的文件,但在尝试查找显示它的大小时出错并没有要搜索的目录。所以我采用了不同的方法。

import os,sys
from stat import *
from os.path import join

for (dirname, dirs, files) in os.walk('/path/to/file'):
    for filename in files:
            if filename.startswith('.tar.gz'):
                    thefile = os.path.join(dirname,filename)
                    size = os.path.getsize(thefile)
                    if size == 0
                    print "File %s has 0 data!" % thefile
                            exit 2
                    else print "File %s is good!" %thefile
                            exit 0

这一个退出,“size = 0”

上的错误无效sytax

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

os.path.getsize()需要完整的路径。

 filepath='/path/to/files'    
 files = sorted([ 
    f for f in os.listdir(filepath) if f.startswith('spam')])


 recent = files[-1]

 filesize = os.path.getsize(os.path.join(filepath, recent))