如何制作一个函数,使其可以搜索文件中的任何字符串?

时间:2019-01-04 17:08:49

标签: python file search

我正在使用机器学习算法(在python中)创建软件,目前正在建立一个从文件中获取数据的环境。

问题是我找不到该函数搜索文件中任何字符串的方法,因此它无法继续搜索特定的字符串。

我创建了一些列表,这些列表在程序每次启动时都是空的,并自动用文件data.append(data_from_file)中的数据填充(例如environment_data.txt)。

我没有做太多尝试,因为我真的不知道如何使它搜索任何字符串。

这些是列表。

tasks = []
deadlines_month = []
deadlines_week = []
deadlines_days = []
difficulty = []

文件格式为:有点错误,但这是一个小问题。

Task( ex. Maths)
Month( ex. 4)
Week(From how many weeks the month has ex. 3)
Days(Days of the week, ex. 4)
Difficulty(from 1 to 10, ex. 9)

这是附加列表的类:

class ArrayFix:
def __init__(self, num):
         file = open("environment_data.txt", "r")
    lines = file.readlines()
    tasks.append(lines[num + 1])
    deadlines_month.append(lines[num + 2])
    deadlines_week.append(lines[num + 3])
    deadlines_days.append(lines[num + 4])
    difficulty.append(lines[num + 5])
    file.close()

这是用于搜索字符串以附加列表的功能。

for line in array_fix_num:
file = open("environment_data.txt", "r")
lines = file.readlines()
if str in file.read():
    if str in lines[line]:
        ArrayFix(line)
    else:
        pass
else:
    file.close()
    break

在函数上str处可以找到什么字符串呢?

预期结果是列表不会为空,而是具有文件中的数据,但它们仍然为空,因为我不知道如何搜索任何字符串。

1 个答案:

答案 0 :(得分:0)

因此您可以打开,读取然后关闭文件,并将行分配给变量:

file = open("environment_data.txt", "r")
lines = file.readlines()
file.close()

然后,您可以应用一些简单的检查逻辑来完善您要查找的数据:

data_test_case = "cat"

for line in lines:
    if data_test_case in line:
        DoSomething(line)

您可以使用Regex实现更复杂的模型:

import re
line = "Jan  3 07:57:39 Kali sshd[1397]: Failed password for root from 172.16.12.55 port 34380 ssh2"
new_line = re.findall('^[a-zA-Z]+\s+\d+\s+[\d\:]+', line)[0]

输出:

'Jan  3 07:57:39'

这是您正在考虑的事情吗?