Tôi muốn tạo một bộ đệm chuỗi để thực hiện nhiều xử lý, định dạng và cuối cùng viết bộ đệm trong tệp văn bản bằng cách sử dụng sprintf
chức năng kiểu C trong Python. Vì các tuyên bố có điều kiện, tôi không thể viết chúng trực tiếp vào tập tin.
ví dụ mã giả:
sprintf(buf,"A = %d\n , B= %s\n",A,B)
/* some processing */
sprint(buf,"C=%d\n",c)
....
...
fprintf(file,buf)
Vì vậy, trong tệp đầu ra, chúng ta có loại o / p:
A= foo B= bar
C= ded
etc...
Chỉnh sửa, để làm rõ câu hỏi của tôi:
buf
là một bộ đệm lớn chứa tất cả các chuỗi đã được định dạng bằng sprintf. Đi theo ví dụ của bạn, buf
sẽ chỉ chứa các giá trị hiện tại, không chứa các giá trị cũ hơn. ví dụ đầu tiên trong buf
tôi đã viết A= something ,B= something
sau C= something
được nối trong cùng buf
, nhưng trong câu trả lời Python của bạn buf
chỉ chứa giá trị cuối cùng, mà không phải là tôi muốn - Tôi muốn buf
có tất cả các printf
s Tôi đã làm ngay từ đầu, giống như trong C
.
def sprintf(buf, fmt, *args): ...
buf
, không phải ở cuối.) Có lẽ sẽ tốt nhất khi sử dụng một chuỗi các chuỗi, sau đó nối chúng lại với nhau trước khi bạn ghi vào tệp.