0

私は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()
4

0 に答える 0