ログファイルに特定のユーザー名の引用ファイルを作成しようとしています。特定のユーザー名が含まれていないすべての行を削除するにはどうすればよいですか?または、このユーザー名を含むすべての行を新しいファイルに書き込むにはどうすればよいですか?この線に沿ってPythonで特定の文字列を含まないテキストファイルから行を削除します
答えて
何かで十分です:
newfile = open(newfilename, 'w')
for line in file(filename, 'r'):
if name in line:
newfile.write(line)
newfile.close()
参照:http://docs.python.org/tutorial/inputoutput.html#methods-of-file-objects
f.readlines()は、ファイル内のデータのすべての行を含むリストを返します。
行を読み取る別の方法は、ファイルオブジェクトをループすることです。これは高速で、メモリ効率的であり、そしてまた、あなたがwith
キーワードの使用をチェックアウトすることができますシンプルなコード
>>> for line in f:
print line
につながります。そのスイートはI種のような
with open(logfile) as f_in:
lines = (l for l in f_in if username in l)
with open(outfile, 'w') as f_out:
f_out.writelines(lines)
メモリ
に>>> with open(filename, 'r') as f:
... read_data = f.read()
>>> f.closed
True
with open('input.txt', 'r') as rfp:
with open('output.txt', 'w') as wfp:
for line in rfp:
if ilikethis(line):
wfp.write(line)
with open(logfile) as f_in:
lines = [l for l in f_in if username in l]
with open(outfile, 'w') as f_out:
f_out.writelines(lines)
それとも、すべての行を保存したくない場合を終了した後、ファイルが適切に閉じられていることを利点最初の方が良いですが、大きなファイルの場合は、ドラッグする可能性があります。
完璧ですあなたが最初のケースで必要としないのと同じ理由からです。 –
@Karl Knechtel私は実際にやっています。後者の場合、ジェネレータ式を使用しているので、ファイルは閉じられ、 'with'ステートメントが終了するとジェネレータ式が実際に処理されるとエラーが発生します。それを試してみてください。これは、ファイル処理でジェネレータ表現を使用するために考えることができる唯一の問題点です。 – aaronasterling
ああ、そうだ。ジェネレータの存在は、ファイルを開いたままにしません。愚かな私:) –
私はあなたがPythonを求めていることは知っていますが、もしあなたがUNIX上にいるのなら、これはgrepの仕事です。あなたがUNIX上ではない場合
grep name file
は、よく...答えは上記のトリックを行います:)
http://gnuwin32.sourceforge.net/packages/grep.htm –
さらに良い! :) – John
- 1. 特定の文字列を含む行を削除します。
- 2. sedは特定の文字列を含まない行を削除します
- 3. 特定の列に空の文字列を含む行を削除します
- 4. Python:特定の文字列をファイルから削除する
- 5. Pythonの文字列から特殊文字を削除する
- 6. 特定の文字列を含まないファイルを削除する
- 7. 特定の文字に達するまで文字列から文字列を削除します。
- 8. 文字列から特定の文字を削除するR
- 9. 文字列から特定の文字を削除する
- 10. 文字列から特定の値を含むすべての行を削除します
- 11. 特定の文字が見つからない場合、リストから文字列を削除します
- 12. テキストファイルの特定の行を削除しますか?
- 13. PHPで特定のテキストを文字列から削除する
- 14. Python:\ xa0を文字列から削除しますか?
- 15. 文字列内の特定の行を削除しますか?シェル
- 16. 列ヘッダーから特殊文字を削除します
- 17. php:文字列から特定のインデックスを削除しますか?
- 18. 文字列jqueryから文字列を削除します
- 19. 文字列から特定の単語を削除する
- 20. 文字列から単一文字を削除しますか?
- 21. 文字列から最後の文字を削除する(Python)
- 22. 文字列からホワイトリストにない文字をすべて削除します
- 23. 文字の特定の値を指定してテキストファイルのセクションを削除する
- 24. 文字列内の特定の文字を削除する
- 25. PythonのUnicode文字列から改行文字を削除する問題
- 26. Python文字列から文字を削除する
- 27. Python:文字列から文字を削除する
- 28. テキストファイルから文字列を削除するには?
- 29. テキストファイルから文字列を削除するAndroid - ファイルIO
- 30. フリーウェアアプリケーションで複数のテキストファイルの特定の行を削除しますか?
これはあなたが後者の場合には「が」第二の字下げする必要はありません – pyfunc