もう一度お詫び申し上げます:複数の文字列を検索してキーワードから読み込んで、f
で検索して行を印刷するコードを試してみてください。 キーワードが1つしかない場合は機能しますが、それ以上のキーワードがない場合は機能します。ファイル内の複数の文字列(ファイルから)を検索し、行を印刷
答えて
キーワードを探す際の課題の1つは、キーワードの意味と、キーワードの完全なセットを見つけるためにファイルの内容を解析する方法を定義することです。 "aa"がキーワードの場合は、 "aaa"または "aa()"と一致する必要がありますか?キーワードに数値が含まれていてもかまいませんか?
単純な解決策は、キーワードは英字のみで、 。。アルファベット正確に、ケースを無視してさらに、試合が文によって文章ではない、行ごとに考慮されるべきである私たちは、アルファベットのシーケンスを見つけるために正規表現を使用することができ、文字列などのような封じ込めをチェックするために設定します。
keys.txt
aa bb
test.txt
aa is good
AA is good
bb is good
cc is not good
aaa is not good
test.py
import re
keyfile = "keys.txt"
testfile = "test.txt"
keys = set(key.lower() for key in
re.findall(r'\w+', open(keyfile , "r").readline()))
with open(testfile) as f:
for line in f:
words = set(word.lower() for word in re.findall(r'\w+', line))
if keys & words:
print(line, end='')
結果:
aa is good
AA is good
bb is good
はあなたが試合で何を意味するかのために複数のルールを追加し、それがより複雑になります。
EDIT
代わりにキーワード検索を使用すると、1行につき1つのキーワードを持っているし、あなただけの(つまり、「AA」は「AAA」と一致している)サブストリングの一致を必要とし、あなたは何ができる
keyfile = "keys.txt"
testfile = "test.txt"
keys = [key for key in (line.strip() for line in open(keyfile)) if key]
with open(testfile) as f:
for line in f:
for key in keys:
if key in line:
print(line, end='')
break
しかし、私はちょうどあなたの基準が何かを推測しています。
非常に良いですこれを試しましたが、いくつかの問題がありました。 1。何らかの理由で、キーワードが1行に1つずつ入力されても何も検索されません。 aa bb cc キーワードを1行に入力すると、bbが返されます。 2。第2に、 'aa'キーワードが検索された場合にも 'aaa'を返したい場合は、 – Saadi381
の場合、 're.findall()'関数には別の[正規表現]が必要です。 –
入力ファイルには多くの形式があり、すべての可能性をカバーすることは不可能です。あなたは私の答えのようにあなたの質問にサンプルを入れることができます。 1行につき1つのキーについては、行単位でファイルを読み込み、空白を取り除き、 'keys = [キーの場合はキー(line.strip()の行を開く(キーファイル)の場合はキー)'のように空をフィルタリングすることができます。 '' aaa "'にマッチさせるために、正規表現の代わりに部分文字列検索を行います。 – tdelaney
keywords = input("Please Enter keywords path as c:/example/ \n :")
keys = open((keywords), "r").readline()
keys = keys.split(',') # separates key strings
with open("c:/saad/saad.txt") as f:
for line in f:
for key in keys:
if key.strip() in line:
print(line)
あなたは1つの文字列として読み込んでいます。カンマ区切りの各文字列のリストを作成する必要があります。卵は
- 1. txtファイル内の複数文字列検索(java)
- 2. フォルダ内のファイルから文字列を検索し、コマンド・ライン・ウィンドウ
- 3. Python文字列を検索してファイルを印刷しています
- 4. パケット内の文字列検索とパケットデータの印刷
- 5. Python:zipedファイル内の検索文字列
- 6. 複数のファイルで文字列を検索し、その文字列でファイルの名前を変更します。
- 7. ファイルから文字列を検索して印刷すると、必要な行の代わりにすべての行が印刷されます
- 8. 複数のファイルを1つの文字列で検索する
- 9. Linuxは、文字列と印刷最終アクセス時間を持つファイルを検索
- 10. 複数の.txtファイルで文字列を検索
- 11. plistファイルで複数の文字列を検索するスクリプト
- 12. 複数の検索結果を検索して印刷する
- 13. 複数のファイルを複数の文字列で検索する方法
- 14. javaを使用してファイル内のユニコード文字列を検索
- 15. Jsoupを使用してhtmlファイル内の文字列を検索
- 16. ファイル内の文字列を検索して置換する
- 17. ファイル内の文字列を検索し、perlの行で操作します
- 18. ファイル内の16進数文字列をPHPで検索していますか?
- 19. 複数の行をファイルに印刷しますか?
- 20. ルビー:複数の検索語の文字列を検索し
- 21. 文字列内の数字の検索
- 22. ファイル内の行から複数の部分文字列を読む
- 23. シェルスクリプト:テキストファイル内の複数の文字列を検索し、文字列を含む行を表示します。
- 24. Pythonを使用してtxtファイル内で文字列を検索
- 25. Python:ファイル内の特定の文字列を検索
- 26. 配列から文字列を検索するファイル
- 27. テキストファイル内の値を検索して次の行を印刷
- 28. 複数の列で複数の文字列を検索する
- 29. ファイルから行を読み込み、文字列(C++)を検索します
- 30. ファイル内の文字列を検索する
あなたは入力を提供し、予想でした、BBはスパム、良いですが、AA良いです。そして、各行の各キーをテストする(キーの周りの空白を削除)
これは、キーワードファイルを想定しているようなものがあります出力? –
このキーワードファイルの形式は何ですか?スペースで区切られた1行の単語の束? – tdelaney
キーワード(「AA」、「BB」): ファイル(aaは良いですが、BBは非常に良いですが、ccは良くありません)のような行が含まれていますよう 期待出力: AAは良い BBですが、私が持っている – Saadi381