0
我制作了下面的Python 2.4脚本,用于扫描多个LINUX磁盘上的文件,并以可读的格式从os.stat返回它们的路径和统计信息。使os.walk/os.stat忽略权限被拒绝?
#!/usr/bin/env python
from datetime import datetime as dt
import os
import grp
import pwd
locations = ["/disk1", "/disk2", "/disk3", "/disk4", "/disk5", "/disk6"]
for item in locations:
for root, dirs, files in os.walk(item):
for fn in files:
path = os.path.join(root, fn)
stats = os.lstat(path)
size = str(stats.st_size)
user = pwd.getpwuid(stats.st_uid)[0]
group = grp.getgrgid(stats.st_gid)[0]
laccess = dt.fromtimestamp(stats.st_atime).strftime("%Y-%m-%d,%H:%M:%S")
lmod = dt.fromtimestamp(stats.st_mtime).strftime("%Y-%m-%d,%H:%M:%S")
c = ","
t1 = ["0,", path, c, size, c, user, c, group, c, laccess, c, lmod,"\n"]
outfile = open("/data/promigrate/DiskDashboard/Temp/filescan.csv", "at")
outfile.write("".join(t1))
outfile.close()
但是我发现我没有访问系统上的某些文件。
我得到下面的错误:
abc12bmm -34> python files_scan.py
Traceback (most recent call last):
File "files_scan.py", line 24, in ?
stats = os.lstat(path)
OSError: [Errno 13] Permission denied: '/disk1/file5'
是否可以处理错误以这样的方式处理跳过Permission denied错误并继续到下一个文件?
我一直在玩例外等,但没有喜悦,所以任何帮助将不胜感激。
谢谢!
贾斯汀
试试 - 除了应该在这里工作。请说明您尝试了什么以及它是如何失败的。 – Lafexlos