私はPythonの初心者です。
テキストファイル内のキーワードのリストを読み取り、多くのテキストファイルを開いて読み取り、キーワードリストを検索し、各キーワードのインスタンスごとにテキストスライスを抽出して、すべてのテキストスライスをcsvファイルに出力しようとしています。
以下のコードがありますが、実行すると、最初のキーワードを最初のファイルに対して検索し、csvに書き込んで、閉じます。答えを探しましたが、探しているものが見つかりませんでした。
私がこれを台無しにした場所についてのアイデアはありますか?
import os
import re
def formatText(s):
s = s.replace("[", "")
s = s.replace("]", "")
s = s.replace(",", "")
s = s.replace("[", "")
s = s.replace("\n", " ")
s = s.replace("\r", " ")
return s
fdoc = wlitems = None
termct = None
f = open(r'filenames.txt')
fdoc = f.read()
flist = fdoc.split('\n')
if f: f.close()
wlist = open(r'keywords.txt')
try:
wltxt = wlist.read()
wlitems = wltxt.split('\n')
finally:
if wlist: wlist.close()
if wlitems and fdoc:
op = open(r'output.csv', 'w')
try:
termct = {}
for chnk in flist:
if not chnk == "":
chnknum = flist.index(chnk)
curfile = open(chnk)
curfilecnts = curfile.read()
ucurfilecnts = curfilecnts.upper()
filelength = len(ucurfilecnts)
for kwrd in wlitems:
if len(kwrd)>0:
curpos = 0
# print keyword
keyd = re.compile(kwrd,re.IGNORECASE | re.MULTILINE | re.DOTALL)
while curpos <= filelength:
sumline = keyd.search(ucurfilecnts,curpos)
# print sumline
if sumline:
curpos = sumline.end()
keydtxt = curfilecnts[sumline.start()-20: sumline.end()+200]
op.write(chnk + "," + kwrd + "," + str(curpos) + "," + formatText(keydtxt) + "\n")
else:
curpose = filelength +1
finally:
if op: op.close()