Этот вопрос закрыт для ответов, так как повторяет вопрос Как удалить строку с 20 символами python?
@Jlokys

Как удалить короткие строчки из файла?

В файле есть строки полностью записанные и нет как написать программу что бы короткие строки удалились.Желательно что бы определялась по символу ( ; ) если в строке меньше 6 этих символов то удалить ее или не записывать.Не знаю как это записать на питоне, помогите, Спасибо)
Вот пример;
93550;Улан-Удэ;02;6 ;12; по; 0; - - ;эц ;% ;0000 ;р ;1150; 80; ?/? ;ПО ;
93550;Улан-Удэ;02;6 ;4 ;по; 0 ;- - ;эц ;%; 0000 ;р ;1150 ;80;?/? ;ПО ;
93550;Улан-Удэ;02;6
94010;Петровский Завод;02;13; 4 ;по; 0 - -; эц; %;6630 ;р ;776;51 ;?/?; ПО ;
94010;Петровский Завод;02;13; 6; по; 0 - -; эц ;% ;6630; р; 752 ;49; ?/?; ПО ;
94010;Петровский Завод;02;13
94020;Парк Декабристы;01;15; 4;по; 0; - - ;эц;% ;6630; р ;1160; 79 ;?/?; ПО ;
94020;Парк Декабристы;01;15
  • Вопрос задан
  • 387 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
with open('myfile.txt', 'r', encoding='utf-8') as f:
    lines = f.readlines()

new = [line for line in lines if line.count(';') >= 6]
print(new)
Ответ написан
Ответы на вопрос 2
Узнать количество ; в строке можно с помощью функции str.count(';'). Что ещё надо?
Ответ написан
@diezeitschriftenliteratur
Если вам нужно записать в файл стро́ки из какого-нибудь массива (допустим с типом list) с тем условием что символ ; будет повторяться 6 и более раз то воспользуйтесь этим кодом:

info = [
	"info;info;info;info;info;info;info;info",
	"info;info;info",
	"info;info;info;info;info;info;info;info;info;info;info"
	"info;info;info;info",
	"info;info;info;info;info;info;info;info;info;info;info;info;info;info;info"
]

with open("file", "wt") as fl:
	for i in info:
		if i.count(";") >= 6:
			fl.write(i + "\n") # \n escape символ новой строки
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы