Запись вывода условных операторов в файл внутри Python с вложенным циклом - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть цикл с, где я открываю два файла json и провожу конкретное сравнение внутри своих циклов.У меня есть несколько условных выражений, и в зависимости от того, какое условие выполняется, я хочу вывести результаты в файл.Теперь я не уверен, где это будет соответствовать циклу for.В настоящее время в моем цикле есть операторы печати, которые объединяют строки и переменные.Я хотел бы заменить это, чтобы записать в файл вместо.

with open('file1.json', 'r') as f, open('file2.json', 'r') as g:
    for cd, pd in zip(f, g):
        if condition:  
            if condition:
                print "I would like to output this to a file":
            else: 
                print "I would like to output this to a file"
        else:  # file names do not match
            print "I would like to output this , str(variable)"

1 Ответ

0 голосов
/ 03 декабря 2018

Похоже, ваша проблема заключается в том, как построить строку динамически, чтобы вы могли записать ее в файл.Есть (как минимум) два основных способа сделать это:

  • Объединить части вашей строки:

    text = "File: " + str(current_fn) + ", line: " + str(line_number)

  • Использовать форматирование строки:

    text = "File: {}, line: {}".format(current_fn, line_number) (в новом стиле) или

    text = "File: %s, line: %s" % (current_fn, line_number) (в старом стиле) или

    text = "File: {filename}, line: {line_number}".format(filename=current_fn, line_number=line_number) (в новом стиле)с именованной интерполяцией)

Вы также можете использовать именованные параметры с форматированием старого стиля, и если вы используете Python 3 вместо Python 2, вы также можете использовать f-строки.

Затем, конечно, написать сообщение: h.write(text), если h - файл, открытый для записи.

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