Когда я пытаюсь выполнить программу python из командной строки, она дает следующую ошибку. Эти ошибки не создают никаких проблем для моего вывода. Я не хочу, чтобы он отображался в командной строке
Traceback (most recent call last):
File "test.py", line 88, in <module>
p.feed(ht)
File "/usr/lib/python2.5/HTMLParser.py", line 108, in feed
self.goahead(0)
File "/usr/lib/python2.5/HTMLParser.py", line 148, in goahead
k = self.parse_starttag(i)
File "/usr/lib/python2.5/HTMLParser.py", line 226, in parse_starttag
endpos = self.check_for_whole_start_tag(i)
File "/usr/lib/python2.5/HTMLParser.py", line 301, in check_for_whole_start_tag
self.error("malformed start tag")
File "/usr/lib/python2.5/HTMLParser.py", line 115, in error
raise HTMLParseError(message, self.getpos())
HTMLParser.HTMLParseError: malformed start tag, at line 319, column 25
Как я могу подавить ошибки?
Не удается ли вам использовать HTMLParseError? Если test.py
- это имя вашего файла python, оно распространяется туда, поэтому оно должно быть.
Вот пример того, как подавить такую ошибку. Возможно, вы захотите немного изменить его, чтобы он соответствовал вашему коду.
try:
# Put parsing code here
except HTMLParseError:
pass
Вы также можете просто подавить сообщение об ошибке, перенаправив stderr в null, как предположил Игнасио. Чтобы сделать это в коде, вы можете просто написать следующее:
import sys
class DevNull:
def write(self, msg):
pass
sys.stderr = DevNull()
Однако это, вероятно, не так, как вы хотите, потому что из вашей ошибки выглядит, что выполнение script прекращено, и вы, вероятно, хотите продолжить его.
Перенаправить stderr на /dev/null
.
python somescript.py 2> /dev/null
try/catch
В python 3, @Boaz Yaniv ответ может быть упрощен как
sys.stderr = object
поскольку каждый класс в python3 унаследован от Object
, поэтому технически это сработает, по крайней мере, я пробовал это самостоятельно в среде python 3.6.5.
Except
аргумента, это сработало. Но когда я дал,except HTMLParseError:
получаю ошибкуNameError: name 'HTMLParseError' is not defined. So how could I know the exact error thing?
HTMLParser.HTMLParseError
, либо явно импортировать его с помощьюfrom HTMLParser import HTMLParseError
.