我正在生成一些数字(比如说,num)并将数字写入输出文件,outf.write(num).
但编译器抛出错误:
"outf.write(num)
TypeError: argument 1 must be string or read-only character buffer, not int".
我怎么解决这个问题?
我正在生成一些数字(比如说,num)并将数字写入输出文件,outf.write(num).
但编译器抛出错误:
"outf.write(num)
TypeError: argument 1 must be string or read-only character buffer, not int".
我怎么解决这个问题?
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()将存在很长时间,因此值得学习/了解。
这些中的任何一个都应该有效
outf.write("%s" % num)
outf.write(str(num))
print >> outf, num
i = Your_int_value
像这样写字节值,例如:
the_file.write(i.to_bytes(2,"little"))
取决于您的 int 值大小和您喜欢的位顺序
您也可以使用 f-string 格式将整数写入文件
对于附加使用以下代码,用于编写一次将 'a' 替换为 'w'。
for i in s_list:
with open('path_to_file','a') as file:
file.write(f'{i}\n')
file.close()
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()