<p>大部分的工作是将文件大小转换为人类可读的格式。看看这对你有没有用</p>
<pre><code>import os
def sizify(fpath):
bytes = os.stat(fpath).st_size
suff = 0
while b//1000:
b = b//1000
suff += 1
return str(b) + ["B", "MB", "GB" "TB"][suff]
def humanReadable(bytes):
suff = 0
while b//1000:
b = b//1000
suff += 1
return str(b) + ["B", "MB", "GB" "TB"][suff]
def getRuns(fnames):
fnames.sort()
answer = []
start = fnames[0]
for mid,high in zip(fnames, fnames[1:]):
mid = int(mid.rsplit('.')[0].lstrip('name'))
high = int(high.rsplit('.')[0].lstrip('name'))
if high-mid > 1:
answer.append((start, mid,
sum(os.stat("name%s.jpg" %i).st_size for i in range(start, mid+1)) +
sum(os.stat("name%s.tiff" %i).st_size for i in range(start, mid+1))))
start = high
answer.append((start, mid,
sum(os.stat("name%s.jpg" %i).st_size for i in range(start, mid+1)) +
sum(os.stat("name%s.tiff" %i).st_size for i in range(start, mid+1))))
return answer
def main():
for dir, dirs, files in os.walk('folder1'):
runs = getRuns(files)
for low,high,size in runs:
print("%s: name%s-%s, %s" %(dir, low, high, humanReadable(size)))
</code></pre>
<p>请注意,这将处理1KB=1000B而不是1KB=1024B<br/>
因此,根据您所在的系统,您可能需要考虑更改它。在</p>