問題タブ [pexpect]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
12599 参照

python - Python で Web ページを表示するにはどうすればよいですか?

Python でユーザー入力を読み取って URL (例: http://www.google.com ) を取得し、Web ページを HTML 形式 (テキストのみ) で端末に出力したいと考えています。使ってみpexpect.spawn('elinks')ましたが、elinks が stdout に書き込めないようです。HTMLParser モジュールも調べましたが、結果のテキストを Web ページに似たものにフォーマットする方法がわかりません。何かアドバイス?

0 投票する
1 に答える
2716 参照

python - pexpect python モジュールを使用した SFTP

pexpect モジュールを使用してファイルを SFTP しようとしています。

SSH 経由で接続して認証できるように見えますが、retval は常に 1 (終了ステータス) であり、ファイルは sftp されません。

ここで何か不足していますか?

p (p.close() ではなく p.wait()) を待機しようとすると、戻りません。

0 投票する
1 に答える
557 参照

python - pexpectを使用してUNIXのダイアログボックスからテキストを取得するにはどうすればよいですか?

以下のようなシェルスクリプトスクリプトがあります。

今私のpyファイルは

このスクリプトの出力は次のとおりです。

これから、いくつかのテキストの間にテキストを取得します。

しかし、ダイアログボックスを使用する場合

ジャンク出力を取得しました。

ダイアログボックスからプレーンテキストを取得する方法はありますか?

ダイアログボックス付きのシェルスクリプトはサードパーティから提供されているため、スクリプトを変更することはできません:(。

シェルスクリプトを変更せずに解決策を提供してください。

0 投票する
2 に答える
1208 参照

python - Python - SSH 経由でバイナリ ファイルを読み込む

Python では、open(file,"rb") のようなスクリプトにファイルを読み込む必要があります。ただし、ファイルは SSH 経由でアクセスできるサーバー上にあります。これを簡単に行う方法について何か提案はありますか? 私はparamikoを回避しようとしており、pexpectを使用してSSHサーバーにログインしているため、pexpectを使用する方法が理想的です.

ありがとう、エリック

0 投票する
2 に答える
5385 参照

python - pexpectおよびssh:su--root-cの後にコマンドの文字列をフォーマットする方法

サーバーとパスワードのリストを繰り返し処理して、サーバーのグループのsshd構成を変更し、パスワードなしのSSHキーを使用してroot経由でコマンドをログイン/実行できるようにしようとしています。

私はこれをbashで簡単に行うことができますが、Pythonを学ぼうとしており、(明らかに)パスワードを手動で入力するのをやめたいと思っています。

これが私がやりたいことのバッシュです:

私はpexpectを使用してPythonでこれを行うことに近づきました:

そのCOMMAND1(scp'ing)を実行すると、正常に動作します。しかし、COMMAND2は失敗します:

スクリプトを実行する前にリモートサーバー上の/etc/ ssh / sshd_configファイルを削除すると、次のようになります。

これをデバッグして、どこが混乱しているかを確認する方法すらわかりません。ただし、COMMAND2を適切に解析しているとは思いません。Pythonはかなり新しいので、アドバイスをいただければ幸いです。ありがとう。

0 投票する
3 に答える
4037 参照

python - pexpect は 1024 文字を超える入力を渡すことができませんか?

現在、次のコードで pexpect を使用してプロセスに入力を渡しています。

INPUT_LEN < 1024 の場合、すべて正常に動作しますが、>= 1024 文字の場合、プロセスは完全な入力を受信せず、 p.readline() で「pexpect.TIMEOUT」エラーが発生します。

入力を 1024 文字未満に分割しようとしましたが、これには同じ問題があります。

1024文字を超える入力でpexpectを機能させる方法を知っている人はいますか? ソースを見てみましたが、os.write(...)を呼んでいるようです。

(補足として、シェルから「cat」を実行し、「Cmd + V」で >=1024 文字を貼り付けようとすると、同じ切り捨てエラーが発生することに気付きました。ただし、「pbpaste」を実行すると、すべて正常に動作します。 | 猫" .)

ありがとう!

更新: 「os.write()」への呼び出しは 1025 を返し、書き込みが成功したことを示しますが、os.read() は「\x07」(1 文字の BEL) を返し、次の呼び出しでハングし、タイムアウトが発生します。 .

os.write() 呼び出しを 2 つのサブ 1024 バイトの write() に分割し、os.fsync() への呼び出しで分離しても、何も変わりません。

0 投票する
1 に答える
6994 参照

python - Pexpect if else ステートメント

ciscoasa の不良 xlate をクリアするスクリプトを作成しようとしています。

悪い xlate をチェックするには、sh xlate | を実行します。500 で応答を受信した場合は、クリア コマンドを送信する必要があります。そうしないと、ciscoasa は新しい VPN トンネルを許可しません。

if else ステートメントについて助けが必要です。それ以外の場合、スクリプトは正常に機能しています。これが私のコードです:

0 投票する
1 に答える
1559 参照

expect - エスケープシーケンス] 0;

私は現在、SSHへのログオンを期待するを使用するスクリプトを作成しようとしています。サーバーにログオンすると[user@host]~/directory$、xtermカラーターミナルを使用したときと同じようにすべてのプロンプトが表示されます。ただし、SSHからの出力をexpectで直接読み取ると、次のように表示されます<ESC>]0;user@host:~/directory[user@host]~/directory$。を使用export PS1="#-->"すると、結果がに変更され<ESC>]0;user@host:~/directory#-->ます。

私の質問は:シーケンスは何をするの<ESC>]0;ですか?そして、それはどのクラスの端末に属していますか?VT52でもVT100でも見つかりませんでした。

0 投票する
2 に答える
1099 参照

python - pexpectのロジック

こんにちは私はPythonでpexpectを使用してsshデバイス情報を読み取っています。

パスワードを入力した後、いくつかのデバイス情報を表示しました。コマンドプロンプトで、続行するには任意のキーを押すように求められます。いずれかのキーを押すと、情報が消えます。

私は以下のロジックを使用して、次のようなコマンドを実行した後に来る他のデータをキャプチャしますshow version

では、パスワードを入力した後、任意のキーを押して「expObject」を使用して続行する前に表示されるデータをキャプチャするにはどうすればよいですか。

0 投票する
1 に答える
587 参照

python - Pythonスクリプトを実行するためのWebページの開発

私は、ユーザーがPythonコードを記述できるようにするウェブページを開発し、入力が必要な場合にそのコードを操作できるようにそのコードを実行しようとしています。実際には、Pythonコードを実行するための仮想コンソールのようなものです。

pexpectはそれを実行できますが、システム端末でローカルに実行できることがわかりました。私がする必要があるのは、pexpect機能を使用して、Pythonコードを実行するオンライン仮想コンソールを作成することです。

私が念頭に置いていたのは、pexpectによって実行されるプロセスのバッファーをファイルに書き込み、ファイルを継続的にチェックしてその中のデータを表示する別のスクリプトを実行することです。しかし、これは非常に悪い解決策であり、ファイルへのアクセスとセカンダリメモリへの書き込みという点でコストがかかると思います。

pexpectまたは別のアプローチを使用してそれを行う方法についてのアイデアをいただければ幸いです。

前もって感謝します。