Преобразование строки F Python 3 в 2.7.5 в .formattedPython

Программы на Python
Anonymous
Преобразование строки F Python 3 в 2.7.5 в .formatted

Сообщение Anonymous »

Я изучил весь свой Python на версии 3.0 и выше и обнаружил, что сервер, на котором мне нужно разместить мой скрипт, — это версия 2.7.5, что означает отсутствие строк f. У меня возникли проблемы с преобразованием моего сценария из строк F в .format. Также, чтобы я мог учиться, не могли бы вы сообщить мне, что я сделал не так?
Текущий рабочий код для 3.10.6

Код: Выделить всё

import sys

filename=sys.argv[1]

def reformat_file(filename, desired_length=87, suffix='N'):
lines = []
with open(filename, 'r') as fp:
for line in fp:
formatted = line
if filename == 'Bob.txt':
len(line) < desired_length
formatted = f"{line:{desired_length}{suffix}}"

else:
len(line) < desired_length
formatted = f"{line:{desired_length}}"

lines.append(formatted)

with open(filename, 'w') as fp:
fp.write('\n'.join(lines))

return

if __name__ == "__main__":
reformat_file(filename)
Я пробовал сделать это в версии 2.7.5:
import sys

Код: Выделить всё

filename=sys.argv[1]

def reformat_file(filename, desired_length=87, suffix='N'):
lines = []
with open(filename, 'r') as fp:
for line in fp:
line = line.strip()
formatted = line
if filename == 'Bob.txt':
len(line) < desired_length
formatted = ".format({line:{desired_length}}{suffix})"
else:
len(line) < desired_length
formatted = ".format({line:{desired_length}})"
lines.append(formatted)

with open(filename, 'w') as fp:
fp.write('\n'.join(lines))

return

if __name__ == "__main__":
reformat_file(filename)
Когда я запускаю код 2.7.5 вместо желаемого результата, я получаю следующее:

Код: Выделить всё

.format({line:{desired_length}})
.format({line:{desired_length}})
.format({line:{desired_length}})
.format({line:{desired_length}})
.format({line:{desired_length}})
.format({line:{desired_length}})
.format({line:{desired_length}})
.format({line:{desired_length}})
.format({line:{desired_length}})
.format({line:{desired_length}})
.format({line:{desired_length}})
.format({line:{desired_length}})
.format({line:{desired_length}})
.format({line:{desired_length}})
.format({line:{desired_length}})
.format({line:{desired_length}})
.format({line:{desired_length}})
.format({line:{desired_length}})
.format({line:{desired_length}})
.format({line:{desired_length}})
.format({line:{desired_length}})
.format({line:{desired_length}})
.format({line:{desired_length}})
.format({line:{desired_length}})
.format({line:{desired_length}})
Желаемый формат — дополнить конец данных в файле, а если это файл Bob.txt, добавить N в конце строки.
Пример:

Код: Выделить всё

1                                    N
111                                  N
111                                  N
1111                                 N
1111                                 N
изменение строки f на .format

Подробнее здесь: https://stackoverflow.com/questions/786 ... o-formated

Вернуться в «Python»