<pre><code>import re
LOG_FMT = re.compile('(\w+):(.*?)\s+(\w+):(.*?)\s+(\w+)\s+(\d+):(\d+):(\d+)\s+(\w+)')
max_tolerate_hours = 19.2
def main():
with open('my.log') as inf:
for row in inf:
match = LOG_FMT.match(row)
if match is not None:
src_machine, src_path, dest_machine, dest_path, rel, hh, mm, ss, status = match.groups()
hh, mm, ss = int(hh), int(mm), int(ss)
hours = hh + (mm / 60.) + (ss / 3600.)
if status == 'Idle' and hours > max_tolerate_hours:
print('Source path : {}'.format(src_path))
print('Destination path : {}'.format(dest_path))
print('Max threshold (h) : {:0.2f}'.format(max_tolerate_hours))
print('Idle (h) : {:0.2f}'.format(hours))
print('=========================================================')
print('Scan completed!')
if __name__=="__main__":
main()
</code></pre>
<p>针对给定的数据返回运行</p>
<pre><code>Source path : /mnt/it/SCCM
Destination path : /mnt/it/SCCM
Max threshold (h) : 19.10
Idle (h) : 19.43
=========================================================
Source path : /mnt/it/Windows
Destination path : /mnt/it/Windows
Max threshold (h) : 19.10
Idle (h) : 19.43
=========================================================
Source path : /mnt/it/-
Destination path : /mnt/it/machine01_it_machine01_it
Max threshold (h) : 19.10
Idle (h) : 19.43
=========================================================
Source path : /mnt/it/dcs
Destination path : /mnt/it/dcs
Max threshold (h) : 19.10
Idle (h) : 19.43
=========================================================
Source path : /mnt/it/hds_perf_logs
Destination path : /mnt/it/hds_perf_logs
Max threshold (h) : 19.10
Idle (h) : 19.43
=========================================================
Scan completed!
</code></pre>