問題タブ [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.

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

python - 外部サブプロセスの実行と戻りコードの読み取り

たくさんの画像(ゲームのスクリーンショット)を並べ替えるためのPythonスクリプトを作成しています。

imagemagickでそれを行う方法を見つけました。画像の特定の正方形が参照クロップと同じである場合、その画像はカテゴリ1になります。そうでない場合は、別の作物と別のカテゴリをチェックし、それがどちらにも当てはまらない場合は、画像をカテゴリ3に入れます。

私はImagemagickでそれを行う方法を見つけました:

(画像の一部を切り取り、その部分を「reference.jpg」と比較します)

スクリプトからそれを呼び出し、変換が返すもの(数値)に基づいてifを実行するにはどうすればよいですか?

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

php - PHP popen と proc_open がバイナリ出力を返さない

popen または proc_open を使用して次のコマンドを実行し、Windows 共有の内容を一覧表示する場合:

共有内のファイルに § 文字 (ASCII 21 Decimal) がある場合、特殊文字に遭遇したときに次の行までデータをスキップします。

期待される出力:

実際の出力:

0 投票する
8 に答える
257343 参照

python - 変更された環境でのPythonサブプロセス/Popen

少し変更された環境で外部コマンドを実行することは非常に一般的なケースだと思います。それが私がそれをする傾向がある方法です:

私はもっ​​と良い方法があると直感しています。大丈夫ですか?

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

python - subprocess.Popen(..).communicate(..) throw away data at random when used with graphviz!

I am using graphviz's dot to generate some svg graphs for a web application. I call dot using Popen:

What happends is that the dot program throw errors like:

That obvious error is most certainly NOT in the input string. In particular, if I save it to str.txt with utf-8 encoding and do

I get the desired output. The only 'special' thing about str is that it contain characters like the danish øæå.

Right now I have no clue what I should do. The problem may very well be in dot; but it certainly seem to be triggered by Popen being different than using < from the shell, and i have no idea where to begin. Any help or ideas for alternatively calling dot (besides writing all the data to a file and calling that!) would be very appreciated!

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

python - Python でバッファリングせずに os.popen() の出力を出力します。

このルビコードのようなデータを出力するプロセスがあるとしましょう。

このプロセスを生成し、そこからデータを読み取って印刷する Python コードが必要です。

このコードの問題は、番号を 1 つずつ出力しないことです。python は最後の時点でバッファリングされたすべてのデータを出力するようです。

バッファリングせずに生成されたプロセスの出力を出力する方法はありますか?

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

python - stdin を subprocess.Popen に指定すると、stdout に書き込まれる内容が変更されるのはなぜですか?

ホスト オペレーティング システムのバイナリ クライアントを使用して FTP を実行するために、Python の subprocess.Popen を使用しています。さまざまな理由で、ftplib やその他のライブラリを使用できません。

stdin ハンドラを Popen インスタンスにアタッチすると、バイナリの動作が変わるようです。たとえば、発行するコマンドのテキスト ファイルを受け入れる XP の ftp クライアントを使用すると、次のようになります。

コマンド.txt:

stdin も提供する場合、stdout で得られるのは次のとおりです。

最初は、これは XP ftp クライアントの癖だと思っていました。おそらく、対話モードではないことを知っていたため、出力が制限されていたのでしょう。ただし、OS X の ftp でも同じ動作が発生します。stdin が指定されている場合、すべてのサーバー応答が stdout から欠落しています。これは、これが正常な動作であると私に思わせます。

Windows では -s スイッチを使用して、stdin を使用せずに ftp を効果的にスクリプト化できますが、他のプラットフォームでは、その種の対話をシェルに依存しています。

Python のバージョンは、両方のプラットフォームで 2.6.x です。stdin のハンドルを指定すると stdout が変更されるのはなぜですか? また、サーバーの応答はどこに送信されますか?

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

ruby - サブプロセスとの話し合い、IOとスレッド化を伴うRubyの使用

プロセスからサブプロセスにメッセージを(.putsメソッドを使用して)配置し、(。getsメソッドを使用して)取得するためにIO.popenを使用しようとしています。

私はあまり実験されておらず、質問があります。次のコードがありますが、クローズドストリームに書き込むことができないため、エラーが発生します。

(...) `write':書き込み用に開かれていません(IOError)

ご覧のとおり、このエラーはis_cool?テスト(http://ruby-doc.org/core/classes/IO.html#M002289で説明されています)。

しかし、process_commandメソッドでコメントしようとすると、次の行になります。

スクリプトがスリープしているようです...無限に:s

閉じた流れを再び開くことはできないと思います。また、プログラム「./program」の他のIO.popenインスタンスを作成することはできません。これは、最初に何らかのコマンド(「準備はできていますか?」や「クールですか?」など)で初期化する必要があるためです。私はそれを使用します(簡単なディスカッションのようにメッセージを送受信することによって)。

この問題を解決するために、現在のコードをどのように変更できますか?

編集:言い換えれば、私はそのような通信を確立したいと思います(与えられたプロトコルに従って):

助けてくれてありがとう。

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

python - args パラメータの subprocess.Popen の最大長とは何ですか?

サブプロセス モジュールのPopen関数を使用して、コマンド ライン ツールを実行しています。

私が使用しているツールは、ファイルのリストを取得して処理します。場合によっては、このファイルのリストが非常に長くなることがあります。args パラメータの最大長を見つける方法はありますか? 多数のファイルがツールに渡されると、次のエラーが発生します。

この最大長を見つける一般的な方法はありますか? msdn で次の記事を見つけました:コマンド プロンプト (Cmd.exe) コマンド ライン文字列の制限ですが、値をハード コードしたくありません。コマンドを複数の呼び出しに分割するために、実行時に値を取得したいと思います。

Windows XP 64 で Python 2.6 を使用しています。

編集:コード例の追加

この問題は、pathsリスト内の実際の各エントリが通常非常に長いファイル パスであり、その数が数千あるために発生します。

コマンドを への複数の呼び出しに分割してもかまいませんprocess_file.exe。引数の最大長を取得する一般的な方法を探しているので、実行ごとに送信するパスの数がわかります。

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

python - -File オプションの使用時に Powershell ウィンドウを非表示にする方法

私は次のようにPowershellを呼び出しています:

Python スクリプトから呼び出していますが、ショートカット経由で呼び出した場合も同じ問題が発生します。-NonInteractiveこのフラグにより​​、非表示のウィンドウで Poweshell が実行されると思いましたが、そうではありません。外部アプリケーションから Powershell を呼び出すときにコンソール ウィンドウを非表示にする方法はありますか?

Johannes Rössel の提案に基づくソリューション