ドライブまたはフォルダーの解析中に、ファイル統計を含むオブジェクトを含む辞書「file_stats」を作成したいと考えています。
このディクショナリのキーとしてパスとファイル名の組み合わせを使用します
。オブジェクトには「addScore」というメソッドがあります。
私の問題は、ファイル名に「-」などの文字が含まれていることがあり、これらのエラーにつながることです。
Error: Yara Rule Check error while checking FILE: C:\file\file-name Traceback (most recent call last):
File "scan.py", line 327, in process_file
addScore(filePath)
File "scan.py", line 393, in addScore
file_stats[filePath].addScore(score)
AttributeError: 'int' object has no attribute 'addScore'
ファイル名を辞書のキーとして使用して、ファイルが既に辞書にあるかどうかをすばやく確認できるようにしました。
ファイルパスを辞書キーとして使用するという考えを却下する必要がありますか、それとも文字列をエスケープする簡単な方法はありますか?
file_stats = {}
for root, directories, files in os.walk (drive, onerror=walkError, followlinks=False):
filePath = os.path.join(root,filename)
if not filePath in file_stats:
file_stats[filePath] = FileStats()
file_stats[filePath].addScore(score)