如何获取代码以显示文本文件中的特定数量的字符

时间:2018-08-20 10:25:01

标签: python

在我的作业中,我希望查找一个单词,并且仅返回一定数量的字符(该单词周围的每个字符分别为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个星期,而且我一直在搜索并且似乎无法获得答案

1 个答案:

答案 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

如果要使其适用于文本中的所有单词。您将需要进行一个循环=),但我确定您可以自己解决这个问题!