Итерация в математической последовательности - PullRequest
0 голосов
/ 25 мая 2020

У меня есть этот набор необработанных данных в текстовом файле, где каждая строка представляет собой новый фрагмент данных, мне нужно выполнить итерацию по файлу построчно и изменить строки, которые являются датами, на определенный формат даты c. Эти даты встречаются в строках 2, 7, 16, 23 и т. Д. c

Для этого мне нужно перебрать эти c строки, чтобы не повредить данные, которые находятся на другом линий. Есть ли способ повторить этот способ в python?

вот экран с данными ..

enter image description here

Вы можете увидеть строки, которыми я хочу управлять, можно найти в строках 2 , 9, 16, 23 и т. Д. c Диапазоны дат указаны в формате Месяц / День - Месяц / День на случай, если у вас возникнут какие-либо трудности с поиском.

И я также включу необработанный текст тоже Его можно найти по этой ссылке Ссылка на необработанные данные

#my rough idea
infile = open("polling_Data.txt", "W+")
for line in infile: # specified range
     #code to edit date etc

Сообщите мне, есть ли у вас какие-либо соответствующие решения, я знаю, что, возможно, какая-то форма регулярного выражения может подойти , открыты для всех идей, спасибо!

Ответы [ 2 ]

1 голос
/ 25 мая 2020

Я действительно предлагаю записать новый файл, а затем удалить старый, на случай, если что-то пойдет не так. Вы можете сделать это, используя следующий код:

import re

month_day_regex = r"(\d{,2}/\d{,2} - \d{,2}/\d{,2})"
new_data = []
# reading "polling_Data" text file
with open("polling_Data.txt", "r") as infile:
    for line in infile.readlines():
        line = line.strip()
        if re.match(month_day_regex, line):
            new_data.append("##########") #do whatever you want
        else:
            new_data.append(line)

Теперь переменная new_data имеет те же данные, что и текстовый файл, с одним изменением, которое заменяет записи Месяц / День с ######### , чтобы выделиться. Теперь давайте запишем эту переменную в новый файл:

with open("new_polling_data.txt", "w") as outfile:
    for line in new_data:
        outfile.write(line+'\n') 

А вот скриншот нового файла enter image description here

1 голос
/ 25 мая 2020

Попробуйте \b\d\d?/\d\d?[ ]?-[ ]?\d\d?/\d\d?\b

демо

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