Python:如何扫描.txt并将特定单词拉出列表

时间:2019-04-12 22:41:09

标签: python list text append

我想逐行扫描.txt文件中的特定单词。找到单词后,我想将该特定行添加到列表中。任何帮助将不胜感激!

下面的代码显示一个空列表...

list = [ ]
word = 'help!'

with open('help!') as f:
    lines = f.readlines()

if word in lines:
    list.append(word)

print(list)

3 个答案:

答案 0 :(得分:2)

您可以遍历.txt文件中的所有行,并检查单词是否在该行中出现。如果是这样,请将该行添加到您的列表中。

list = [ ]
word = 'help!'

with open('text_file.txt') as f:
    lines = f.readlines()

for line in lines: #iterate over lines
    if word in line: #check if word in line
        list.append(line) #add line

print(list)

答案 1 :(得分:0)

您最有可能希望在文件的每一行上执行一个for循环,看看您的单词是否出现。

# declare variables
list = []
word = 'help!'

# filepath to your .txt file, if its in the
# same directory as your py script, then just set it as the .txt name
filePath = 'stackOverflow.txt'

# for each line in your .txt file
for line in open(filePath):
     # if your word is in that line then ... 
     if(word in line):
          # append to list
          list.append(line)

# print list
print(list)

希望这会有所帮助! =)

答案 2 :(得分:0)

您可能要谨慎使用以下方法检查句子中的单词:

If (word in line):
    list.append(line)

如果单词=“ in”,则在“替补席上的Sitt in g”行中进行测试时,上述条件将返回假阳性“ True”。

一种更好的方法可能是:

if (word in line.split(“ “)):
    list.append(line)

这将丢失带标点符号的单词,因此先删除标点符号将是更好的解决方案。您可以导入re并使用正则表达式先删除标点符号。

Regex = re.compile(r”\W+”)
if (word in Regex.sub(“ “,line).split(“ “)):
        list.append(line)