Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何构造Python函数,使其在出错后继续运行?_Python_Html Parsing_Beautifulsoup - Fatal编程技术网

如何构造Python函数,使其在出错后继续运行?

如何构造Python函数,使其在出错后继续运行?,python,html-parsing,beautifulsoup,Python,Html Parsing,Beautifulsoup,我是Python新手,在StackOverflow的大力帮助下,我编写了一个程序: 1) 在给定目录中查找,对于该目录中的每个文件: 2) 运行HTML清理程序,该程序: 使用BeautifulSoup打开每个文件 删除列入黑名单的标记和内容 美化剩余的内容 运行漂白以删除所有未列入白名单的标记和属性 另存为新文件 它工作得非常好,除了当它遇到某种文件内容时,会抛出一系列漂亮的组错误并中止整个过程。我希望它能够很好地抵御这种情况,因为我无法控制什么样的内容会出现在这个目录中 所以,我的问题是

我是Python新手,在StackOverflow的大力帮助下,我编写了一个程序:

1) 在给定目录中查找,对于该目录中的每个文件:

2) 运行HTML清理程序,该程序:

  • 使用BeautifulSoup打开每个文件
  • 删除列入黑名单的标记和内容
  • 美化剩余的内容
  • 运行漂白以删除所有未列入白名单的标记和属性
  • 另存为新文件
它工作得非常好,除了当它遇到某种文件内容时,会抛出一系列漂亮的组错误并中止整个过程。我希望它能够很好地抵御这种情况,因为我无法控制什么样的内容会出现在这个目录中

所以,我的问题是:我如何重新构造程序,以便当它在目录中的一个文件上出错时,报告它无法处理该文件,然后继续运行其余的文件

以下是我迄今为止的代码(删除了无关的细节):


我正在寻找有关如何编写此文件的指导,以便在clean_file函数中遇到解析/编码/内容/属性/etc错误后继续运行。

您可以使用:

处理错误。您可以使用:

处理错误在
clean_文件内部或for循环中处理

for filename in os.listdir(directory):
    try:
        clean_file(filename)
    except:
        print "Error processing file %s" % filename

如果您知道引发了什么异常,可以使用更具体的catch。

您可以在
clean_文件中或for循环中执行错误处理

for filename in os.listdir(directory):
    try:
        clean_file(filename)
    except:
        print "Error processing file %s" % filename

如果您知道引发了什么异常,您可以使用更具体的catch。

捕获BS引发的异常。查看“Try”和“except”是您的朋友:)捕获BS引发的异常。查看“Try”和“except”是您的朋友:)