Я хотел бы создать строковый буфер для большой обработки, форматирования и, наконец, записи буфера в текстовый файл, используя функциональность C-стиля sprintfв Python. Из-за условных операторов я не могу записать их прямо в файл.
например псевдокод:
sprintf(buf,"A = %d\n , B= %s\n",A,B)
/* some processing */
sprint(buf,"C=%d\n",c)
....
...
fprintf(file,buf)
Итак, в выходном файле у нас есть такой o / p:
A= foo B= bar
C= ded
etc...
Изменить, чтобы прояснить мой вопрос:
buf большой буфер содержит все эти строки, отформатированные с помощью sprintf. Если следовать вашим примерам, они bufбудут содержать только текущие значения, а не старые. например, первое, что bufя написал A= something ,B= somethingпозже, C= somethingбыло добавлено таким же образом buf, но в ваших ответах Python bufсодержится только последнее значение, которого я не хочу - я хочу bufиметь все, что printfя делал с самого начала, например, в C.
def sprintf(buf, fmt, *args): ...
buf, а не в конец.) Вероятно, лучше всего было бы использовать массив строк, а затем объединить их вместе, прежде чем записывать в файл.