使用out.write()将整数值写入文件

时间:2012-06-22 17:08:19

标签: python

我正在生成一些数字(比方说,num)并使用outf.write(num).将数字写入输出文件 但编译器抛出错误:

"outf.write(num)  
TypeError: argument 1 must be string or read-only character buffer, not int".  

我该如何解决这个问题?

5 个答案:

答案 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()