Как удалить определенный набор номеров строк в текстовом файле с помощью Python?

#python #text

Вопрос:

Мне нужно удалить, например, следующие номера строк, например; номера строк = [67,68,69] Как это возможно сделать? На самом деле я использую следующий код, но он не работает.

 f_in = 'Tendons_ Diagonals_Analysis1.tb'
f_out = 'Sample.tb'
_fileOne = open(f_in,'r')
f = open(f_out,'w')
    
counter=0
    
for line in fileinput.input([f_in]):
    counter = counter 1    
    if counter != (i for i in [67,68,69]):
          f.write(line)
    f.close()
 

Ответ №1:

Сделайте это вместо этого:

 for line in _fileOne:
    counter = counter 1    
    if counter not in [67,68,69]:
        f.write(line)
     
f.close()
 

Вызов if counter != (i for i in [67,68,69]) -это вопрос counter int о том , является ли an выражением генератора (i for i in [67,68,69]) , которым оно не является.

Кроме того, как вы уже знаете, вы хотите удалить a set строк, а не a list строк, поэтому более эффективно протестировать

 if counter not in {67, 68, 69}:
 

в отличие от

 if counter not in [67, 68, 69]:
 

или

 if counter not in (67, 68, 69):
 

Комментарии:

1. Большое спасибо.