我正在生成一些数字(比方说,num)并使用outf.write(num).
将数字写入输出文件
但编译器抛出错误:
"outf.write(num)
TypeError: argument 1 must be string or read-only character buffer, not int".
我该如何解决这个问题?
答案 0 :(得分:21)
write()只接受单字符串参数,因此您可以执行此操作:
outf.write(str(num))
或
outf.write('{}'.format(num)) # more "modern"
outf.write('%d' % num) # deprecated mostly
另请注意,write
不会在输出中添加换行符,因此如果您需要,则必须自行提供。
<强>除了强>:
使用字符串格式化可以让您更好地控制输出,例如,您可以编写(两者都是等效的):
num = 7
outf.write('{:03d}\n'.format(num))
num = 12
outf.write('%03d\n' % num)
获取三个空格,前导零为整数值,后跟换行符:
007
012
format()将会存在很长一段时间,所以值得学习/了解。
答案 1 :(得分:3)
任何这些都应该有效
outf.write("%s" % num)
outf.write(str(num))
print >> outf, num
答案 2 :(得分:2)
i = Your_int_value
像这样写字节值,例如:
the_file.write(i.to_bytes(2,"little"))
取决于您的int值大小和您喜欢的位顺序
答案 3 :(得分:1)
您还可以使用f字符串格式将整数写入文件
要追加内容,请使用以下代码,编写一次,将“ a”替换为“ w”。
for i in s_list:
with open('path_to_file','a') as file:
file.write(f'{i}\n')
file.close()
答案 4 :(得分: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()