Я хотел бы создать строковый буфер для большой обработки, форматирования и, наконец, записи буфера в текстовый файл, используя функциональность 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
, а не в конец.) Вероятно, лучше всего было бы использовать массив строк, а затем объединить их вместе, прежде чем записывать в файл.