sprintf Python işlevselliği gibi
Bir dize arabellek işleme biçimi bir sürü oluşturmak için ve sonunda bir metin dosyası C-tarzı sprintf
işlevi Python kullanırken tampon yazmak istiyorum. Koşullu ifadeler nedeniyle, doğrudan dosya için onları yazamıyorum.
e.sahte kod g:
sprintf(buf,"A = %d\n , B= %s\n",A,B)
/* some processing */
sprint(buf,"C=%d\n",c)
....
...
fprintf(file,buf)
Çıktı dosyasında o/p Bu tür var:
A= foo B= bar
C= ded
etc...
Düzenleme, sorumu açıklığa kavuşturmak için:
buf
büyük bir arabellek içerir sprintf kullanarak biçimlendirilmiş olan bu dizeleri.
Senin örnek alarak buf
yalnızca geçerli değerleri, büyük olanlar değil içerir.
e.ilk g buf
yazdım A= something ,B= something
sonraki C= something
eklenen aynı buf
ama senin Python cevapları buf
içerir sadece son değeri olmayan istiyorum! buf
bütün printf
ler var Henüz başında, gibi C
.
İstediğim şeyi açıklığa kavuşturmak edebildim umarım. Kötü İngilizcem için özür dilerim.
CEVAP
Python için %
bir operatör var.
>>> a = 5
>>> b = "hello"
>>> buf = "A = %d\n , B = %s\n" % (a, b)
>>> print buf
A = 5
, B = hello
>>> c = 10
>>> buf = "C = %d\n" % c
>>> print buf
C = 10
Herkes için reference biçim belirteçleri desteklenen bu bakın.
De format
kullanabilirsiniz:
>>> print "This is the {}th tome of {}".format(5, "knowledge")
This is the 5th tome of knowledge
::std sprintf gibi dize biçimlendirme...
C-gibi yapılar Python...
Dict anahtarları Python içinde bir özn...
Nasıl Python zamanlayıcı gibi bir Cron...
Python gibi bir şey'in interaktif...