#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. Большое спасибо.