【发布时间】:2019-12-08 02:12:06
【问题描述】:
我有这个防病毒任务来查找特定病毒SigData = Infected。我不知道如何完成此脚本以使其将受感染文件列表打印到输出文件。
我试过os.listdir(path),但它说路径没有定义。我不知道如何从这段代码中打印我需要的列表:
import os
import inspect
SigData="Infected"
def search(path): #Searches for files in path.
filestodisinfect = []
filelist = os.listdir(path)
for filename in filelist:
if os.path.isdir(path+"/"+filename): #Looks for folder
filestodisinfect.extend(search(path+"/"+filename))
elif filename[-3:] == ".py": #Searches for python scripts to disinfect
for line in open(path+"/"+filename):
if SigData in line:
if infected == True:
filestodisinfect.append(path+"/"+filename)
return filestodisinfect
我希望这个脚本能够从它的 sigdata 中找到病毒,我已经这样做了,但是需要它来将受感染文件的列表打印到输出文件中。
【问题讨论】:
-
for item in filestodisinfect: print(item) -
您在代码中多次使用
path+"/"+filename,因此您可以分配给变量并使用变量fullpath = path+"/"+filename- 或首选fullpath = os.path.join(path, filename)) -
如果你想检查子文件夹中的所有文件,那么你可以使用
os.walk(),它也提供子文件夹中的文件和目录——所以你不必使用递归。 -
你的函数返回一个列表。只需调用函数,将结果存储在变量中,然后遍历该变量中的列表并打印(到文件或控制台)。
标签: python python-2.7 list directory