ログファイルに特定のユーザー名の引用ファイルを作成しようとしています。特定のユーザー名が含まれていないすべての行を削除するにはどうすればよいですか?または、このユーザー名を含むすべての行を新しいファイルに書き込むにはどうすればよいですか?この線に沿って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. 特定の文字列を含むすべての行を削除します
- 5. Python:特定の文字列をファイルから削除する
- 6. Pythonの文字列から特殊文字を削除する
- 7. 特定の文字列を含まないファイルを削除する
- 8. Pythonは文字列から文字を削除しますか?
- 9. 各文字列の最後から特定の文字を削除します
- 10. セル内の文字列から特定の文字を削除します。
- 11. 文字列を含まない行を削除する
- 12. 特定の文字に達するまで文字列から文字列を削除します。
- 13. SQL Server文字列から特定の文字を削除します。
- 14. Bash:文字列から特定の文字までを削除する
- 15. Javascript - 文字列から特定の文字を削除する
- 16. 文字列から特定の文字を削除するR
- 17. 文字列から特定の文字を削除する
- 18. Python Selenium:Webページの本文から特定の文字を削除します
- 19. 文字列から特定の値を含むすべての行を削除します
- 20. Powershell特定の文字列を含む行を除くすべての行を削除します。
- 21. 特定の文字列で始まらない限り、ファイルから行を削除してください
- 22. 特定の文字が見つからない場合、リストから文字列を削除します
- 23. 特定の文字を含むPythonのテキストファイルから単語を削除するには?
- 24. 配列の列から特定の文字列を削除するPythonのデータフレーム
- 25. テキストファイルから特定の行を削除または削除する方法
- 26. 質問を含む文字列からサブ文字列を削除します。
- 27. Pythonの文字列から奇妙な文字を削除します
- 28. テキストファイルの特定の行を削除しますか?
- 29. データフレームの列から特殊文字を削除します
- 30. PHPで特定のテキストを文字列から削除する
これはあなたが後者の場合には「が」第二の字下げする必要はありません – pyfunc