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'
プロセスがパーミッション拒否エラーをスキップし、次のファイルに続くような方法でエラーを処理することが可能ですか?
私は例外などで遊んでいますが、喜びはありませんので、どんな助けでも大歓迎です。
ありがとうございます!
ジャスティン
try-exceptはここで動作するはずです。何を試して、どのように失敗したのかを示してください。 – Lafexlos