import subprocess
cmd = 'tasklist'
proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
file = open("Process_list.txt", "r+")
for line in proc.stdout:
file.write(str(line))
file.close()
私はテキストファイルにプロセスリストを保存しました。しかし、Process_list.txtファイルには\ r \ nのような改行文字がたくさんあります。どうすれば削除できますか?テキストファイルの改行文字を削除するにはどうすればよいですか?
In [1]: 'foo\r\n'.strip()
Out[1]: 'foo'
をお使いの場合:あなたはあまりにもwith
を使用してclose()
にファイルを避けることができ
file.write(str(line).strip())
私は
'.strip()'や '.rstrip()'が必要です(例えば、 'file.write(line.rstrip())')。 'line'はほとんど確実に既に文字列なので、変換する必要はありません。また、コンテキストマネージャを使用してファイルを開くための 'with'キーワードを調べるべきです。 – jedwards
実際に 'subprocess.Popen(cmd、shell = True、stdout = subprocess.PIPE)'は 'bytes'を返します。 'file.write(str(line))'の代わりに 'file.write(line.decode( 'ascii')。strip())'を実行します。 – Abdou
'Popen()'はバイトで動作するので、データを 'エンコード/デコード 'する必要があります。バイトモードでファイルを開く必要があるかもしれません。' b'。 – furas