Tôi đang tạo một số số [giả sử,
outf.write[str[num]]
0] và ghi các số vào tệp đầu ra bằng cách sử dụng outf.write[str[num]]
1Nhưng trình thông dịch đang ném lỗi:
outf.write[num]
TypeError: argument 1 must be string or read-only character buffer, not int.
Làm thế nào tôi có thể giải quyết vấn đề này?
Gino Mempin
21.4K25 Huy hiệu vàng87 Huy hiệu bạc115 Huy hiệu đồng25 gold badges87 silver badges115 bronze badges
Đã hỏi ngày 22 tháng 6 năm 2012 lúc 17:08Jun 22, 2012 at 17:08
3
Write [] chỉ lấy một đối số chuỗi duy nhất, vì vậy bạn có thể làm điều này:
outf.write[str[num]]
hoặc
outf.write['{}'.format[num]] # more "modern"
outf.write['%d' % num] # deprecated mostly
Cũng lưu ý rằng
outf.write[str[num]]
2 sẽ không nối một dòng mới vào đầu ra của bạn, vì vậy nếu bạn cần nó, bạn sẽ phải tự cung cấp nó.Aside::
Sử dụng định dạng chuỗi sẽ giúp bạn kiểm soát nhiều hơn đối với đầu ra của bạn, vì vậy ví dụ bạn có thể viết [cả hai đều tương đương]:
num = 7
outf.write['{:03d}\n'.format[num]]
num = 12
outf.write['%03d\n' % num]
Để có được ba không gian, với số 0 hàng đầu cho giá trị số nguyên của bạn, theo sau là một dòng mới:
007
012
Định dạng [] sẽ tồn tại trong một thời gian dài, vì vậy nó đáng để học/biết.
Đã trả lời ngày 22 tháng 6 năm 2012 lúc 17:10Jun 22, 2012 at 17:10
LevonlevonLevon
Huy hiệu vàng 133K3333 gold badges198 silver badges187 bronze badges
3
Bất kỳ trong số này sẽ hoạt động
outf.write["%s" % num]
outf.write[str[num]]
print >> outf, num
Joaquin
79,9K28 Huy hiệu vàng137 Huy hiệu bạc151 Huy hiệu đồng28 gold badges137 silver badges151 bronze badges
Đã trả lời ngày 22 tháng 6 năm 2012 lúc 17:12Jun 22, 2012 at 17:12
Joran Beasleyjoran BeasleyJoran Beasley
106K12 Huy hiệu vàng149 Huy hiệu bạc174 Huy hiệu đồng12 gold badges149 silver badges174 bronze badges
2
i = Your_int_value
Viết giá trị byte như thế này: ví dụ:
the_file.write[i.to_bytes[2,"little"]]
Phụ thuộc vào kích thước giá trị int của bạn và thứ tự bit thích của bạn
Đã trả lời ngày 26 tháng 1 năm 2018 lúc 13:33Jan 26, 2018 at 13:33
1
Ngoài ra, bạn có thể sử dụng định dạng F-String để ghi số nguyên vào tệp
Để sử dụng mã sau, để viết một lần thay thế 'A' bằng 'W'.
for i in s_list:
with open['path_to_file','a'] as file:
file.write[f'{i}\n']
file.close[]
Paul Roub
36.1k27 Huy hiệu vàng81 Huy hiệu bạc88 Huy hiệu đồng27 gold badges81 silver badges88 bronze badges
Đã trả lời ngày 19 tháng 8 năm 2019 lúc 21:37Aug 19, 2019 at 21:37
0
f = open ['file1.txt','a'] ##you can also write here 'w' for create or writing into file
while True :
no = int[input["enter a number [0 for exit]"]]
if no == 0 :
print["you entered zero[0] ....... \nnow you are exit !!!!!!!!!!!"]
break
else :
f.write[str[no]+"\n"]
f.close[]
f1 = open ['Ass1.txt','r']
print["\n content of file :: \n",f1.read[]]
f1.close[]
Đã trả lời ngày 21 tháng 4 năm 2021 lúc 8:07Apr 21, 2021 at 8:07