python - 在python中将标准错误输出重定向到/dev/null

标签 python linux

我创建了以下脚本(Python 版本 2.x)以验证 IP 地址

如果 IP 验证通过,脚本将打印 OK

否则脚本会打印失败

验证非常好,

但我不想打印的是来自异常的错误(参见脚本的 Exe),

我只想打印 OK 或 Fail ,并将标准错误重定向到 null

请告知我的脚本中需要更新什么才能做到这一点?

#!/usr/bin/python





import commands
import subprocess
import os
import re
import socket






def validIP(address):
   parts = address.split(".")
   if len(parts) != 4:
       return False
   for item in parts:
       if not 0 <= int(item) <= 255:
           return False
   try:
       socket.inet_aton(address)
       return True
   except socket.error:
       return False


       f = open('/dev/null', 'w')
       sys.stdout = f
       f.close()


address = raw_input("Please enter IP address : ")
res = validIP(address)

if res == True:
    print"OK"
else:
    print "Fail"

执行脚本:(来自Linux red-hat machine version 6)

 ./Check_IP_Address.py

  Please enter IP address : 192.9.200.WRONG
  Traceback (most recent call last):
  File "./Check_IP_Address.py", line 37, in <module>
  res = validIP(address)
  File "./Check_IP_Address.py", line 23, in validIP
  if not 0 <= int(item) <= 255:
  ValueError: invalid literal for int() with base 10: 'WRONG'

最佳答案

根据你的陈述,捕获ValueError异常(exception)会解决你的问题。您不应该只留下 Errors or Exceptions。你应该直接捕获他们。

try:
   if not 0 <= int(item) <= 255:
       return False
except ValueError as e:
   return False

关于python - 在python中将标准错误输出重定向到/dev/null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32327073/

相关文章:

python - 如何使用 MagicMock 欺骗 issubclass 检查?

python - opencv - OMR -Python - 订购问题

python - 如何覆盖 Flask Admin 上的删除逻辑?

python - 在 python 中使用括号从表示二叉树的字符串创建数组

用于检查互联网连接不工作的 Linux bash 脚本

c++ - 尝试模拟 linux shell。模拟 mkdir 时出现问题

Python构建numpy矩阵

regex - 如何使用 sed 将第一个空格替换为空字符串

linux - SOAP:无法分配请求的地址

linux - `sudo yum update` throws 需要...删除...已过时