在 Python stdout 中测试新行

Testing for new line in Python stdout

我有一个脚本,在其中我很难测试来自远程命令的标准输出的换行符。

  OUT  = stdout.readlines()
  print OUT

  if ['\n'] in OUT:
    print "/disk/var/log/app directory deleted"
  else:
    for line in OUT:
      print line.strip()

如果目录被删除,OUT 的结果是['\n']。无论我尝试什么,我都无法识别 if 语句中的 ['\n']。

现在您正在检查列表 ['\n'](即仅包含一个元素 '\n' 的列表)是否包含在 OUT

readlines() returns 一个字符串列表。它永远不会 return 一个包含列表的列表,所以 ['\n'] in OUT 不应该评估为真。你可能想做

if OUT == ['\n']:

if '\n' in OUT: