0

ターミナルのコマンド出力から特定の文字列を見つけようとしています。しかし、うまくいきません。

これが私が実行しているコマンドです:

check = subprocess.check_output("netctl list | sed -n 's/^\* //p'", shell=True)

これにより、2 つのうちの 1 つが返されます。接続されていない場合は b'' が返され、接続されていない場合は b'$networkname\n' が返されます。

それを確認するために使用しているコードは次のとおりです。

p = re.compile(r"\bb''\b")
if p.search("b''"):
    print("False")
    return False
else:
    print("True")
    return True

ただし、何があっても true を返します。私も試しました:

if check == "b''":

しかし、それは何があってもtrueを返します。私はここで私の心を失っています。動作しない原因は何ですか?

4

1 に答える 1

2

実際には、文字列ではなく空bytesのリテラルを探す必要があります。b''"b''"

if check == b'':
于 2013-05-19T04:47:59.063 に答える