首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建一个函数,使其可以搜索文件中的任何字符串?

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

Stack Overflow用户
提问于 2019-01-05 01:08:49
回答 1查看 40关注 0票数 0

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

问题是我找不到让函数在文件中搜索任何字符串的方法,这样它就可以继续搜索特定的字符串。

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

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

这些是列表。

代码语言:javascript
复制
tasks = []
deadlines_month = []
deadlines_week = []
deadlines_days = []
difficulty = []

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

代码语言:javascript
复制
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)

这是附加列表的类:

代码语言:javascript
复制
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()

这是搜索字符串以追加列表的函数。

代码语言:javascript
复制
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所在位置的任何字符串?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-05 01:15:28

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

代码语言:javascript
复制
file = open("environment_data.txt", "r")
lines = file.readlines()
file.close()

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

代码语言:javascript
复制
data_test_case = "cat"

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

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

代码语言:javascript
复制
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]

输出:

代码语言:javascript
复制
'Jan  3 07:57:39'

这就是你想要的东西吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54043282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档