在我的作业中,我希望查找一个单词,并且仅返回一定数量的字符(该单词周围的每个字符分别为80和40),而无需使用nltk或regex。
我已经将代码设置为
open = open("a2.txt", 'r')
file2read = open.readlines()
name = 'word'
for line in file2read:
s2 = line.split ("\n", 1)
if name in line:
i = line.find(name)
half = (80 - len(name) - 2) // 2
left = line[i - half]
right = line[i + len(word) + half]
print(left + word + right)
但是我的打印输出看起来像this(更新的屏幕截图),而不是我希望找到的80个字符行。
很抱歉,如果这是一个真正的新手错误,因为我进入该程序仅3个星期,而且我一直在搜索并且似乎无法获得答案
答案 0 :(得分:3)
除了由于Windows / Unix的差异而可能导致读取行不一致之外,您还可以一次读取整个文本:
您无需将其分隔成几行:
with open('a2.txt', 'r') as file:
a = file.read()
name = 'word'
if name in a:
i = a.find(name)
half = (80 - len(name) - 2) // 2
left = a[i-half:i]
right = a[i+len(name):i + len(name) + half]
print(left + name + right)
这样,您可以一次阅读全文。找到您的单词并打印必要的80个字符。这是输出
ut. even know say trip tip sandwich. words describe it. meat eater, love it. b
如果要使其适用于文本中的所有单词。您将需要进行一个循环=),但我确定您可以自己解决这个问题!