問題タブ [popen]
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.
c - ファイル ストリームに新しいデータがない場合に fgets がブロックされるのを防ぐ方法
をpopen()
実行する関数がありtail -f sometextfile
ます。ファイルストリームにデータがある限り、明らかにデータを取得できますfgets()
。これで、新しいデータが末尾から来ない場合、fgets()
ハングします。私は試しferror()
てみfeof()
ましたが、役に立ちませんでした。fgets()
ファイル ストリームに新しいものが何もないときに がデータを読み取らないようにするにはどうすればよいですか?
提案の1つはでしたselect()
。これはWindowsプラットフォーム用であるため、匿名パイプが機能しないように見えるため、selectは機能しないようです(この投稿を参照)。
c - この _popen / select の例の何が問題になっていますか?
更新:コードと問題の説明を更新して、変更を反映させました。
非ソケットでソケット操作を試みていることがわかりました。または、次の理由で fd_set が無効であること:
select
-1 を
WSAGetLastError()
返し、10038 を返します。
しかし、私はそれが何であるかを理解できないようです。プラットフォームは Windows です。その部分は掲載していませんWSAStartup
。
新しい結果はもちろん、リターンコードと最後のエラーの出力です。
python - すべての os.popen() メソッドの違いは何ですか?
Python のドキュメントを調べていたところ、os.popen()、os.popen2() など、4 ~ 5 の異なるバージョンの popen() があることがわかりました。
stderrを含むものと含まないものがあるという事実は別として、それらの違いは何ですか?また、それぞれをいつ使用しますか? ドキュメントはそれをあまりよく説明していませんでした。
python - Python: キープレスを生成するにはどうすればよいですか?
一部のコマンドでは、特定のキー押下を検出するプロセス ( os.popen() を使用) を開いています (例: ESC - 文字ではなく、キー)。キープレスイベントをプロセスに送信する方法はありますか?
python - Pythonスクリプトでシェルコマンドを起動し、終了を待ってスクリプトに戻る
ディレクトリ内のすべてのファイルに対してシェルコマンドを起動する必要があるpythonスクリプトがあります:
これは最初のファイルに対しては正常に機能しますが、「myscript」コマンドが終了した後、実行が停止し、python スクリプトに戻りません。
どのようにできるのか?fork()
前にする必要がありcalling os.execlp()
ますか?
python - Python、Popen、select-プロセスの終了またはタイムアウトを待機中
私は以下を使用してサブプロセスを実行します:
このサブプロセスは、stderrでエラーが発生してすぐに終了するか、実行を継続する可能性があります。これらの状態のいずれかを検出したい-後者は数秒待つことによって。
私はこれを試しました:
しかし、それはただ戻ります:
どちらの条件でも。私に何ができる?
python - PythonサブプロセスがWindowsでfdsを渡さないようにしますか?
Pythonのサブプロセスモジュールは、デフォルトで、開いているすべてのファイル記述子を、生成する子プロセスに渡します。これは、親プロセスがポートでリッスンしていて強制終了された場合、子がまだその記述子を所有しているため、再起動してリッスンを再開できないことを意味します(SO_REUSEADDRを使用している場合でも)。私は子プロセスを制御できません。
サブプロセスのPOpenコンストラクターはclose_fds引数を受け入れます。これにより、必要に応じて、子の記述子が閉じられます。ただし、Windowsでのみ、stdin / stdoutもオーバーライドされた場合に使用できないという制限があります。これは、私が行う必要があります。
Windowsでのこの回避策を知っている人はいますか?
python - ZipFile が文句を言います。zipfile モジュールを使用する方法はありますか?
zip 形式で送信された MMS メッセージを解凍しようとしています。問題は、機能する場合と機能しない場合があることです。そして、それが機能しない場合、python zipfile モジュールは不平を言い、それが悪い zip ファイルであると言います。ただし、zipfile は unix unzip コマンドを使用して正常に解凍されます。
これは私が得たものです
「w+」を使用して文字列を書き込んでいます。文字列には、zip ファイルの base64 でデコードされた文字列表現が含まれています。
それから私はこれが好きです:
このようにして、zip ファイル内のすべての画像のリストを取得しました。しかし、zipfile モジュールが一部のファイルについて不平を言うため、これは常に機能するとは限りません。
zipfile モジュールを使用せずにこれを行う方法はありますか?
どういうわけか、zipfile の代わりに unzip コマンドを使用して、アーカイブからすべての画像を取得するために同じことを行うことはできますか?
python - subprocess.Popen エラー
サイレント モードで msi インストーラーを実行し、特定のファイルにログをキャッシュしています。以下は、実行する必要があるコマンドです。
C:\Program Files\ My Installer\Setup.exe /s /v "/qn /lv %TEMP%\log_silent.log"
私が使用した:
コマンドを実行しても、操作が認識されず、間違ったオプションが選択されているというエラーが表示されます。相互検証したところ、コマンドはこの方法でのみ機能することがわかりました。
python - 実行中のサブプロセスの stdout のインターセプト
これが私のサブプロセスの場合:
そして、これはサブプロセスの出力を制御および変更するスクリプトです。
プロセスが実行されるまで待っているのreadline
はなぜですか? communicate
サブプロセスの stdout をリアルタイムで渡す (および変更する) 簡単な方法はありますか?
私はWindows XPを使用しています。