問題タブ [shlex]

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 投票する
6 に答える
6864 参照

python - Pythonでtxtから空白を削除する

データが次のような .txt ファイル (Web サイトから事前に書式設定されたテキストとしてスクレイピング) があります。

列の間の余分なスペースをすべて削除したいと思います (実際には、タブではなくスペースの数が異なります)。また、次のように、区切り文字(データ内にコンマがあるため、タブまたはパイプ)に置き換えたいと思います。

周りを見回して、最適なオプションは正規表現またはシュレックスを使用して分割することであることがわかりました。2 つの類似したシナリオ:

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

python - shlex: Python 3 での引用符のエスケープ

アスキーテキストを分割したい

これは Python 文字列として出力されます

の中へ

shlex.split(line)を与えて、動作しませんValueError("No closing quotation")

私は次のように追加しようとしましたwordchars

しかし、これは私の意図ではありません。

引用符がなければ、すべてが期待どおりに機能します。

これはどのように修正できますか?

編集:私が来た最も近いものは:

これはまだ正しくありません。

編集: 文字列の例はやや誤解を招く可能性があります。分割することもできるはずです。

shlex問題l1ありません。

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

python - Python: subprocess.Popen().communicate() は、出力を返す代わりに、SSH コマンドの出力を stdout に出力します。

これが私のpython端末のコピーです:

出力は になると思います('myhost', None)。出力が communicate() の戻りタプルに格納されないのはなぜですか?

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

python - I/O ファイルの名前を変更する必要がある場合の Python 内のコマンド

OK、この投稿で Python 内で複雑なコマンドを実行する方法を見つけました。 Python スクリプトで独自の外部コマンドを実行する方法

それは実際に機能しますが、私の場合、ループと名前のinputfilename変更outputfilenameを繰り返し実行しています。私はその解決策を試しましたが、認識しないため機能しませんinputfilename

In the loop は、が1 から 21 までのループで実行されているinputfilename場所mbr{:03}_20161110.grb1.format(i)です。i

ありがとうございました。

編集:要求に応じて、ここでループがどのようになるかを示します。

ループはディレクトリmbr001を探索し、各親ディレクトリとしてmbr020名前を付けます。inputfile

gr_cp は、(フィルターのように)inputfilenameからいくつかの変数を抽出するコマンド ライン ツールです。outputfilename他のシェルコマンドと同じです。問題は、ループ内で識別されないことinputfilenameです。

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

python - Python: サブプロセスと Popen を使用して出力を印刷する

ファイルを cat し、出力に「oranges」という単語が見つかった場合にのみ出力を出力するpythonプログラムがあります。出力に「オレンジ」が見つかった場合、これを元に戻し、プログラムが何も出力しないようにする方法を考えていましたか?

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

python - shlex.split の使用時に引用符を保持する

shlex.split() を使用するときに、「スペースを含む値」の周りの引用符を保持するにはどうすればよいですか?

ありがとうございました

0 投票する
0 に答える
170 参照

python - shlex.split のパラメータ値を知る方法

--test abc -a a -b b cLinuxスクリプトのパラメータである文字列変数を として持っています。

subprocessこれを実行するためにpythonを使用しています。

この文字列にはまたはのspecialような文字が含まれている可能性があります。この場合、値を引用するために使用する必要があります。backtic'--test \"it's my test\" -a a -b b cpipes.quote

これを使用して分割しshlex.split、パラメーターを分割することができます。それを知りたいです

リストから、またはshlex.splitどのように確認できますか、どれが値でどれがパラメーターですか?

確認できますがstartswith('-') or startswith('--')、このロジックが間違っている可能性はありますか?

0 投票する
0 に答える
78 参照

python - .Popen() と .shlex() を使用してファイルを deluge-console にロードする

.Popen() と .shlex() を使用して、deluge-console 経由でファイルをロードするスクリプトを取得するのに問題があります。gnome-terminal で xubuntu と byobu を使用しています。

def torrentLoad(url): #client_run = subprocess.Popen(['deluged']]) sourceList = torrentWrite(sortXML(url)) print(sourceList) for s in sourceList: sleep(2) delugeList = ['deluge-console', 'add', s] load = subprocess.Popen(delugeList, stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, err = load.communicate() print(out, err) 変数 sourceList には、xml を解析して torrent ファイルの場所のリストを返す関数が含まれています。(例: '/home/YOURHOME/Documents/torrents/file.torrent')

理論的には、これはコマンドをフィードするはずです: deluge-console add /home/YOURHOME/Documents/torrents/file.torrent をターミナルに直接追加します。私もByobuを運営しています。それがこれに関与するかどうかはわかりません。

私が得ている出力はnoddaです。助けてくれてありがとう。

0 投票する
0 に答える
113 参照

python - カーリー/スマートクォートでのシュレックス分割

Python 3.6.3 のshlexモジュールを使用して、カーリー/スマート引用符 ("") で囲まれた内容を保持しながら、文字列を空白で分割しようとしています。ただし、正しく機能しません。

通常の引用符 (") を使用すると、期待どおりに機能します。

では、shlex を qurly/smart quotes で動作させるにはどうすればよいでしょうか?