削除するデータのリストに基づいて.csvファイルの列にある単語を別の.txtファイルに難読化したいとします。.txtファイルから.csvのデータを難読化する
私のデータの大文字と小文字を無視し、.csvファイルでは、一致する単語を "to remove"ファイルの代わりに'*'
に置き換えることが理想的です。大文字と小文字を無視して.csvファイル内の単語を置き換えるのが最善の方法は何か分かりません。私がこれまで行ってきたことは働いておらず、私は解決策に門戸を開いています。
例データファイル:
This is a line of text in .csv column that I want to remove a word from or data such as 123 from.
私の.txtファイルを削除するデータのリストになります。
want
remove
123
出力は次のようになります。
This is a line of text in .csv column that I **** to ****** a word or data such as *** from.
私のコード:
import csv
with open('MyFileName.csv' , 'rb') as csvfile, open ('DataToRemove.txt', 'r') as removetxtfile:
reader = csv.reader(csvfile)
reader.next()
for row in reader:
csv_words = row[3].split(" ") #Gets the word for the 4th column in .csv file
for line in removetxtfile:
for wordtoremove in line.split():
if csv_words.lower() == wordtoremove.lower()
csv_words = csv_words.replace(wordtoremove.lower(), '*' * len(csv_words))
私はこのコードをあまりにも多くのループに凝縮して非効率の点に凝縮しようとしていると思います。 'row [3] .split(" ")';を使用します。難読化したい_only_単語/フレーズがその列の文章にあることを意味しますか?また、実際の出力は何ですか?ここにあるものはすべて読み込まれますが、他のものは読み込まれません。 – roganjosh
はい、残りのデータ列には難読化したい単語/句がありません。私はこの入れ子ループが効率的ではないと思っていましたが、私はPythonには新しく、より良い方法は何か分かりません。私の実際の出力は、.csvファイルの列のどこかにある私の.txtファイルから(大文字と小文字を区別しない)単語を取り、.csv列の一致する単語を '*'で置き換える必要があります。 – TechPadawan24