問題タブ [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.
python - Pythonでtxtから空白を削除する
データが次のような .txt ファイル (Web サイトから事前に書式設定されたテキストとしてスクレイピング) があります。
列の間の余分なスペースをすべて削除したいと思います (実際には、タブではなくスペースの数が異なります)。また、次のように、区切り文字(データ内にコンマがあるため、タブまたはパイプ)に置き換えたいと思います。
周りを見回して、最適なオプションは正規表現またはシュレックスを使用して分割することであることがわかりました。2 つの類似したシナリオ:
python - shlex: Python 3 での引用符のエスケープ
アスキーテキストを分割したい
これは Python 文字列として出力されます
の中へ
shlex.split(line)
を与えて、動作しませんValueError("No closing quotation")
。
私は次のように追加しようとしましたwordchars
:
しかし、これは私の意図ではありません。
引用符がなければ、すべてが期待どおりに機能します。
これはどのように修正できますか?
編集:私が来た最も近いものは:
これはまだ正しくありません。
編集: 文字列の例はやや誤解を招く可能性があります。分割することもできるはずです。
shlex
問題l1
ありません。
python - Python: subprocess.Popen().communicate() は、出力を返す代わりに、SSH コマンドの出力を stdout に出力します。
これが私のpython端末のコピーです:
出力は になると思います('myhost', None)
。出力が communicate() の戻りタプルに格納されないのはなぜですか?
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
です。
python - Python: サブプロセスと Popen を使用して出力を印刷する
ファイルを cat し、出力に「oranges」という単語が見つかった場合にのみ出力を出力するpythonプログラムがあります。出力に「オレンジ」が見つかった場合、これを元に戻し、プログラムが何も出力しないようにする方法を考えていましたか?
python - shlex.split の使用時に引用符を保持する
shlex.split() を使用するときに、「スペースを含む値」の周りの引用符を保持するにはどうすればよいですか?
ありがとうございました
python - shlex.split のパラメータ値を知る方法
--test abc -a a -b b c
Linuxスクリプトのパラメータである文字列変数を として持っています。
subprocess
これを実行するためにpythonを使用しています。
この文字列にはまたはのspecial
ような文字が含まれている可能性があります。この場合、値を引用するために使用する必要があります。backtic
'
--test \"it's my test\" -a a -b b c
pipes.quote
これを使用して分割しshlex.split
、パラメーターを分割することができます。それを知りたいです
リストから、またはshlex.split
どのように確認できますか、どれが値でどれがパラメーターですか?
確認できますがstartswith('-') or startswith('--')
、このロジックが間違っている可能性はありますか?
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です。助けてくれてありがとう。
python - カーリー/スマートクォートでのシュレックス分割
Python 3.6.3 のshlexモジュールを使用して、カーリー/スマート引用符 ("") で囲まれた内容を保持しながら、文字列を空白で分割しようとしています。ただし、正しく機能しません。
通常の引用符 (") を使用すると、期待どおりに機能します。
では、shlex を qurly/smart quotes で動作させるにはどうすればよいでしょうか?