调试不遵守catch语句的python

三位一体的

我正在尝试将avg作为程序的一部分运行。该程序通常是自动执行的,所以我看不到python的标准输出。

当我直接调用程序来运行程序时,它可以正常运行,但是当我通过自动化程序运行时,它会失败。

它将在系统日志中显示->“开始扫描:xxx”,但从不显示“意外错误”或“扫描结果”。这意味着,它失败了,但是没有使用catch语句,或者在“ out”变量中报告了错误。

令人反感的功能:

# Scan File for viruses
# fpath -> fullpath, tname -> filename, tpath -> path to file
def scan(fpath, tname, tpath):
    syslog("Starting scan of: " + tname)
    command = ["avgscan",
          "--report=" + tpath + "scan_result-" + tname +".txt",
          fpath]
    try:
        out = subprocess.call(command)
        syslog("Scan Results: " + str(out))
    except:
        syslog("Unexpected error: " + sys.exc_info()[0])
    finally:
        syslog("Finished scan()")

到目前为止,这两个想法都是围绕调试代码本身进行的,在此之前,扫描只是一个简单的subprocess.call(command)和简单的syslog输出。在with语句中,添加了try catch以帮助调试。

三位一体的

所以我解决了。解决了我不再使用AVG Scan和libclamscan的问题。

通过使用直接与python一起使用的扫描仪,结果更快,错误也消失了。如果有人通过搜索遇到了这个,这是我现在正在使用的代码:

import os.path
import pyclamav.scanfile

def r_scan(fpath):
    viruslist = []
    if os.path.isfile(fpath):
        viruslist = f_scan(fpath, viruslist)
    for root, subFolders, files in os.walk(fpath):
        for filename in files:
            viruslist = f_scan(
                             os.path.join(root, filename), viruslist)
    writeReport(fpath, viruslist)

def f_scan(filename, viruslist):
    result = pyclamav.scanfile(filename)
    if result[0] > 0:
        viruslist.append([result[1], filename])
    return viruslist

def writeReport(fpath, viruslist):
    header = "Scan Results: \n"
    body = ""
    for virusname, filename in viruslist:
        body = body + "\nVirus Found: " + virusname + " : " + filename

    with open(fpath + "-SCAN_RESULTS.txt", 'w') as f:
        f.write(header+body)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

gVim的.vimrc不遵守条件语句

来自分类Dev

Python Logger不遵守日志级别

来自分类Dev

Python`tempfile.gettempdir()`不遵守TMPDIR

来自分类Dev

Python urllib2不遵守超时

来自分类Dev

Python Logger不遵守日志级别

来自分类Dev

Python`tempfile.gettempdir()`不遵守TMPDIR

来自分类Dev

Python不遵循'if语句'

来自分类Dev

ReactiveCommand不遵守canExecute

来自分类Dev

MongoClient不遵守connectTimeout

来自分类Dev

URLConnection不遵守ReadTimeout

来自分类Dev

ReactiveCommand不遵守canExecute

来自分类Dev

GetChildAtPoint不遵守ZOrder

来自分类Dev

不遵守 where 条款?

来自分类Dev

cURL不遵守密码

来自分类Dev

Saltstack不遵守观看/要求

来自分类Dev

boundingRectWithSize不遵守自动换行

来自分类Dev

ScrollView不遵守Flex规则

来自分类Dev

AWS CLI不遵守MultiFactorAuthAge

来自分类Dev

不遵守Oracle Timestamp精度

来自分类Dev

转换命令不遵守顺序

来自分类Dev

Python / Matplotlib:带有contourf的颜色栏不遵守自定义cmap的刻度标签

来自分类Dev

如果python中的语句不触发输入

来自分类Dev

如何调试python多语句生成器?

来自分类Dev

如何在 Python 中调试我的 if 和 elif 语句?

来自分类Dev

python 2.7:调试 if-else 语句(语法错误)

来自分类Dev

HTTPConnection.request不遵守超时?

来自分类Dev

tkinter标签不遵守合理选项?

来自分类Dev

Mongodb:似乎不遵守上限大小限制

来自分类Dev

PGPoolingDataSource不遵守默认的自动提交