ホームページ > バックエンド開発 > Python チュートリアル > スレッドで subprocess.Popen クラスを使用していますが、機能しません

スレッドで subprocess.Popen クラスを使用していますが、機能しません

WBOY
リリース: 2024-02-22 13:13:11
転載
695 人が閲覧しました

我正在使用带有线程的 subprocess.Popen 类,但它对我不起作用

質問内容

次のファイルがあります:

ping.py:

リーリー

メイン.py:

リーリー

このプログラムの目的は、ネットワーク デバイスが ping 可能かどうかを確認することです。 main.py ファイルを実行していますが、間違った結果が得られます。デバッグを試みましたが、スレッドの問題のようですが、解決できません。

どんな助けも歓迎します


正解


いくつかの観察

  • 前に述べたように、ping_cmd にさらに多くのコンテンツを追加し続けると、コマンドに含まれる IP アドレスがますます増えます。 ping_cmd リスト

    に追加するのではなく、毎回新しいコマンドを作成する方が良いでしょう。
  • この行を検討してください

    リーリー

    Linux の出力を見ると次のようになります:

    リーリー

    コード内で ttl (大文字) を検索すると、常に false が返されます。また、テキストを検索するために正規表現を使用する必要はありません:

    リーリー
  • utilities パッケージの内容を投稿していないため、packet_cout に相当する値が何であるかわかりません

  • マルチスレッドを扱う場合、print の代わりに logging を使用することをお勧めします。これは、前者はスレッドセーフですが、後者はスレッドセーフではないためです。

このようにして、これが私が提案する解決策です

リーリー

以上がスレッドで subprocess.Popen クラスを使用していますが、機能しませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート