ฉันต้องการสร้างบัฟเฟอร์สตริงเพื่อทำการประมวลผลรูปแบบและสุดท้ายเขียนบัฟเฟอร์ในไฟล์ข้อความโดยใช้sprintf
ฟังก์ชันC-style ใน 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
ไม่ใช่ตอนท้าย) มันน่าจะดีที่สุดที่จะใช้อาร์เรย์ของสตริงจากนั้นรวมเข้าด้วยกันก่อนที่คุณจะเขียนลงไฟล์