0

我试图让 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”上的语法无效

任何帮助深表感谢!

4

1 回答 1

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))
于 2013-12-06T08:16:32.990 回答