私はCSVファイルを持っていますので、2つの異なるリストのキーワードに基づいてそれぞれを別のファイルに抽出します。つまり、プログラムは元のファイルのすべての行と最初のリストのキーワードを一致させ、一致が見つかるまでその行を書き込む必要があります。一度一致が見つかると、それは実行を中断するはずです。プログラムがcsvファイルの最後の行に達しても一致しない場合は、2番目のリストとマッチングを開始し、同じことを繰り返す必要があります。 私は最初のリストに優先順位をつけたいと思います。一致するものがなければ、2番目のリストを使ってプロセスを開始してください。最初のリストの項目に優先順位を付けた2つのリストに基づいてcsvファイルからデータを抽出します
import os
from tqdm import *
import time
import pandas as pd
import numpy as nb
line = fr.readline()
fr = open('d:\\srcfile1')
fw = open('destfile1', 'w')
found=False
while line:
line = fr.readline()
if any (item.lower() in line.lower() for item in fruit):
found=True
fw.close()
break
elif any (item.lower() in line.lower() for item in veg) and found==False:
fw.close()
break
fw.writelines(line)
fr.close()
fw.close()
コードから目的の結果は次のようになります。
The first list fruit=['orange', 'apple', 'grape', 'banana','phone', 'TV', 'w']
The second list veg=['tomato','potato','onion']
は、次の私は、Pythonのコード、次の書かれている
paper
wood
plastic
fire
water
house
onion
ginger
mints
banana
TV
watermelon
phone
pepper
srcfile1と呼ばれるファイルの1の内容のサンプルです:
paper
wood
plastic
fire
water
house
onion
ginger
mints
しかし、このコードを実行すると、両方のリストの要素と一致するだけで、果物リストに優先順位は与えられません。それは単に次の出力を与えるだけです:
paper
wood
plastic
fire
water
house
誰かが私を助けることができたら、私は感謝します。
その後、私は目標を理解することはわからないんだけど、あなたは、元のCSVで二回ループするリストが必要な場合がありますので、多分リストに結果を格納し、検索ループを実行してキーワードを見つけたり、見つけた場合はブレークしたり、2番目のリストをループしてください。 – PRMoureu
あなたの 'fruit'と' veg'はあなたの出力に対応していません。なぜあなたのoutfile 'fw.close()'をいつも閉じていますか? –
私が欲しいのは、最初のリストにあるキーワードが最初に出現したときに停止することです。何も見つからない場合は、2番目のリストと同じものを試してください。 – Bander