Использование line.replace дважды в одной строке - PullRequest
0 голосов
/ 06 апреля 2020

Я пытаюсь использовать line.replace так, чтобы я мог заменить две отдельные переменные в одной строке, прежде чем перейти к следующей строке.

Допустим, текстовый файл "file.txt" имеет вид:

(1,00)

(2,00)

(3,00)

Я хотел бы заменить (и) на пустое место для каждой строки. Вот что у меня есть.

file=open('file.txt', 'r')
file_1=open('file_1.txt', 'w')

for line in file:
  x=line.replace('(', "")
  file_1.writelines(x)

file_2=open('file_1.txt', 'r')
file_3=open('file_2.txt', 'w')

for line in file_2:
  y=line.replace(')', "")
  file_3.writelines(y)

Есть ли способ сделать это более эффективным?

Спасибо Вы за вашу помощь,

Кайл

Ответы [ 2 ]

1 голос
/ 06 апреля 2020

Вам просто нужно вызвать функцию замены во второй раз после того, как вы сделаете это в первый раз:

for line in file:
    x=line.replace('(', "")
    x=x.replace(')', "")
    file_1.writelines(x)

Или вы можете даже вызвать функцию замены дважды в одной строке:

for line in file:

    x=line.replace('(', "").replace(')', "")

    file_1.writelines(x)
0 голосов
/ 06 апреля 2020

Вы можете сделать это намного проще. Как уже говорили другие, вы можете вызвать replace дважды, потому что она возвращает строку, так что вы можете сделать ...

for line in file:
  x=line.replace('(', "").replace(')', "")
  file_1.writelines(x)

Вам на самом деле тоже не нужен x, так что вы можете объединить их в одна линия. Работает потому, что функция replace продолжает возвращать строку.

for line in file:
  file_1.writelines(line.replace('(', "").replace(')', ""))

И теперь, когда это одна строка для l oop, мы можем сделать это еще проще для понимания списка. Создание всей программы

file=open('file.txt', 'r')
file_1=open('file_1.txt', 'w')
[file_1.writelines(line.replace('(', "").replace(')', "")) for line in file]

Не стесняйтесь задавать вопросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...