我试图让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非常感谢任何帮助!
答案 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))