Я сделал ниже написанный скрипт 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'
Можно ли обрабатывать ошибки таким образом, что процесс Пропускает разрешения отказано ошибку и продолжает к следующему файлу?
Я играю с исключениями и т. Д., Но без радости, поэтому любая помощь будет принята с благодарностью.
Спасибо!
Джастин
Try-except должен работать здесь. Пожалуйста, покажите, что вы пробовали и как это произошло. – Lafexlos