我正在使用机器学习算法(在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
处可以找到什么字符串呢?
预期结果是列表不会为空,而是具有文件中的数据,但它们仍然为空,因为我不知道如何搜索任何字符串。
答案 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'
这是您正在考虑的事情吗?