Как открыть файл в виде отформатированной строки? - PullRequest
1 голос
/ 13 мая 2019

У меня есть ряд файлов с множеством переменных, определенных в форме {myvar} внутри. например,

file.txt

This is {myvar}.

Я хочу их открыть, и переменные обычно меняются:

with open('path/to/file.txt', 'r') as file:
    myfile = file.read().replace('\n', '')


myvar='myself.'
print(f"{myfile}")

Должен вывести:

This is myself.

Как открыть файл в виде отформатированной строки? Или преобразовать строку в отформатированную строку?

Ответы [ 2 ]

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

Вы почти у цели.

Предположим, есть "Это {myvar}". в файле .txt.

Coding:

with open('path/to/file.txt', 'r') as file:
    myfile = file.read().replace('\n', '')

myvar='myself'

print(myfile.format(myvar=myvar))

Любые строки в текстовом формате, могут быть импортированы как переменные из текстового файла. Тогда строковой переменной можно манипулировать как обычно.

В вашем случае ключ "{var}". Таким образом, вы можете легко использовать ".format (var = varx), если вы определили переменную" varx ".

Выход:

Это я.

И если вы хотите импортировать HTML-шаблон в стиле css и заменить некоторое содержимое, вы можете просто использовать "{{" и "}}" для экранирования "{" и "}".

Пример 2 В файле:

Это {myvar} для {{var}}.

Выход:

Это я для {var}.

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

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

myvar = 'myself'
newline = '\n'  # Avoids SyntaxError: f-string expr cannot include a backslash

with open('unformatted.txt', 'r') as file:
    myfile = f"{file.read().replace(newline, '')}".format(**locals())

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