ввод файла Python, если и - PullRequest
0 голосов
/ 07 мая 2019

Я хочу найти значения в строке в файле и заменить их.

Когда я сделаю это:

def replace(file_name, name, original_value, new_value):
    for line in fileinput.input(file_name, inplace=1):
        if name in line:
            print(line)

Я могу распечатать каждую строку, в которой появляется «имя»in.

Если я сделаю следующее, тогда она НЕ распечатывает строку, даже если в строке в файле появляются 2 значения:

def replace(file_name, name, original_value, new_value):
    for line in fileinput.input(file_name, inplace=1):
        if name in line and original_value in line:
            print(line)

Как мне это сделать?ЕСЛИ И?

//Sample line in my text file
add_argument('--look_for_this',  test)

config_name = "look_for_this"     
old = 'test'
new = 'new_value'

replace(config_file, config_name, old, new)  

1 Ответ

1 голос
/ 07 мая 2019

Я попробовал ваш код, как показано ниже, и он работает для меня. Вы должны более подробно указать, в чем проблема!

lines = ['1. a b c', '2. c d e', '3. e f g', '4. c e']
name = 'c'
original_value = 'e'

for line in lines:
    if name in line and original_value in line:
        print(line)

Производит следующий вывод:

2. c d e
4. c e

То, что вы ожидаете. Следовательно, я могу только предположить, что у вас должна быть какая-то ошибка в коде, которая либо предоставляет name, либо original_value не в той форме, которую вы ожидаете. Или линия не в той форме, которую вы ожидаете. Например. Кодировка может быть проблемой, если вы ищете конкретные шаблоны байтов или аналогичные.

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