Как сделать функцию, чтобы она могла искать любую строку в файле? - PullRequest
0 голосов
/ 04 января 2019

Я создаю программное обеспечение с алгоритмом машинного обучения (на 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 голосов
/ 04 января 2019

, чтобы вы могли открыть, прочитать, а затем закрыть файл и назначить строки переменной:

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'

это то, о чем ты думаешь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...