@werastet

Очиститель файла после знака?

Добрый вечер ребят.
Мне нужен скрип который очистит в файле после определённого знака например у меня есть
164672jeirjfueheh: mom don Bob
Uehehe72+7388: udiend jejd jejaj
а мне надо чтобы осталось только
164672jeirjfueheh
Uehehe72+7388
(То есть все что после ":" Надо чтобы удалилось включая ":"
Файл в массиве и строк более 1миллиарда
  • Вопрос задан
  • 152 просмотра
Пригласить эксперта
Ответы на вопрос 4
@dmshar
Добрый вечер ребят.
- привет, ребятёнок.
Пытаюсь перевести то, что написано в вопросе на нормальный язык.
"Файл в массиве" - т.е. данные уже считаны в массив. Тогда причем тут "очиститель файла"?
"скрип который очистит в файле после определённого знака" - Противоречит дальнейшему примеру, в котором на самом деле очищается не "файл", а просто удаляется в каждой записи файла (а точнее - в каждом элементе массива) то, что стоит после ":".
"строк более 1миллиарда" - не впечатляет.
Так вот, если данные уже в "массиве" - правда, не ясно, как вы его на Python организовали, но будем считать, что все-таки с помощью списка, - то далее все элементарно:

arr =['164672jeirjfueheh: mom don Bob','Uehehe72+7388: udiend jejd jejaj']
for i,row in enumerate(arr):
    arr[i]=row.split(':')[0]
print (arr)


Результат:
['164672jeirjfueheh', 'Uehehe72+7388']
Можете, если нужно, возвращать в файл.
Впредь постарайтесь свой вопрос излагать более четко и технически грамотно.
Ответ написан
@galaxy
cut -d: -f1 file.txt > filtered.txt
Ответ написан
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Подсказка:
'164672jeirjfueheh: mom don Bob'.split(':')[0]
# '164672jeirjfueheh'

Пробегаете по всему файлу и выполняете эту нехитрую операцию над каждой строкой
Ответ написан
Комментировать
shabelski89
@shabelski89
engineer
class FileHandler:
    def __init__(self, filename):
        self.filename = filename

    def read(self):
        with open(self.filename, 'r', encoding='utf-8') as in_file, \
                open(f'result_{self.filename}', 'w', encoding='utf-8') as out_file:
            for line in in_file:
                if line:
                    out_line = self.__parse(line)
                    out_file.write(out_line)
                    out_file.write("\n")

    @staticmethod
    def __parse(line):
        result, *_ = line.split(":")
        return result


if __name__ == "__main__":
    f = FileHandler(r'yot_file_name')
    f.read()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы