2016-04-30 4 views
-1

Im пытается удалить номера из инструкции печати, но когда я пытаюсь, это не так. Это фактически добавляет лишние строки, которые нежелательны.Удаление номеров.

p=open('test1.txt','r') 
t=open('outChanger.txt','w') 

counter=0 
for l in p: 
counter+=1 
if counter%3==0: 
    print((l.swapcase()*2),l.strip('2')) 

t.close() 
p.close() 

Я хочу, чтобы это выглядело так, но без 2-х.

Муравьи маршируют 2 на 2,

Муравьи маршируют 2 на 2,

(Он добавляет это с .strip.) Муравьи идут маршируют 2 на 2,

ПОЛУЧИТЕ ДОЖДЬ, бум! бум! бум!

tO ПОЛУЧИТЬ ДОЖДЬ, стрела! бум! бум!

(и добавляет это также) Чтобы выбраться из дождя, БУМ! БУМ! БУМ!

+2

Можете ли вы предоставить содержимое файлов? –

+0

Unrelated, но вместо поддержания 'counter' переменного, просто используйте' enumerate' –

+1

Отступа вашего код правильно – Leva7

ответ

2

Я думаю, вы можете назвать .strip() на строку, вы печатаете первый, не печатать его снова:

print(l.swapcase().strip()*2) 

приковав методы, как это, вы будете раздеваться "2" из строки, а затем распечатать разделив строку дважды. Если вы не хотите, чтобы лишить "2" с середины, вызовите метод .strip() после умножения строки:

print((l.swapcase()*2).strip()) 

EDIT: Поскольку ваша строка не заканчивается "2", то .strip() не будет работать поскольку он удаляет только края. Для того, чтобы удалить все "2" S из строки, вызовите метод .replace() на него так:

print(l.swapcase().replace("2", "")*2) 

Это заменит все "2" с с пустой строкой, так что это будет в значительной степени удалить их.

+0

Он по-прежнему не удаляет 2-х из строки. – Mell0w

+0

@Julian Ну, это потому, что полоса не то, что вы хотите. Понимаете, мне трудно понять ваш вопрос, но я постараюсь. Итак, вы хотите удалить все «2», верно? – Leva7

+0

Да, это то, с чем мне нужна помощь. – Mell0w

 Смежные вопросы

  • Нет связанных вопросов^_^