我目前有此代码,但是运行它时出现错误:
NameError:全局名称'array_of_lines_strings'未定义
此外,注释掉的代码代表我下一步要执行的操作,即不仅要对1个文件运行搜索功能,还要使用glob对文件夹中的所有文件运行搜索功能,该如何解决并解决错误?>
import re
AS = re.compile('approve stipulation between', re.IGNORECASE)
OG = re.compile('Order Granting', re.IGNORECASE)
from glob import glob
import pandas as pd
import os
with open(r'C:\Users\234234234234\Desktop\termlist.txt') as f:
termlist = f.readlines()
termlist = [x.strip().lower().split(' ') for x in termlist]
def keep(line):
match = AS.findall(line)
if (len(match) > 0):
return True
match = OG.findall(line)
if (len(match) > 0):
return True
return False
def search(file_name):
with open(file_name, 'r') as f:
termlist = f.readlines()
termlist = [x.strip().lower().split(' ') for x in termlist]
for line_number in range(1, len(array_of_lines_strings)):
for search_term in term_list:
if search_term in list(set(lines_to_scan)):
found_lines_list.append([line_number -1, line_number])
if __name__ == '__main__':
directoryPath = r'C:\Users\234234234234\Desktop\eric__pdf'
file_list = glob("C:\\Users\\234234234234\Desktop\\eric_pdf\\*.txt")
os.chdir(directoryPath)
folder_list=os.listdir(directoryPath)
search('C:\\Users\\234234234234\\Desktop\\eric_pdf\\eric.txt')
'''
results = []
for file in file_list:
with open(file) as f:
for line in f:
if (keep(line)):
results.append(line)
df = pd.DataFrame({'results': results})
df.to_csv('results.txt')
'''
答案 0 :(得分:0)
在您的search
方法中,包括以下行:
for line_number in range(1, len(array_of_lines_strings)):
但是您的变量array_of_lines_strings
尚未定义,因此您无法要求尚不存在的变量的长度。
您的意思是该方法中的前一行是
array_of_lines_strings = [x.strip().lower().split(' ') for x in termlist]
(而不是termlist =
……)?
我还提醒您,您有两个看起来非常相似的不同变量:termlist
和term_list
。如果您希望它们相同,则选择其中一个。如果您希望变量表示不同的含义,则最好给它们提供更具描述性的名称,以免以后再混淆自己。