我写了一个简单的函数来写入文本文件。像这样,
def write_func(var):
var = str(var)
myfile.write(var)
a= 5
b= 5
c= a + b
write_func(c)
这会将输出写入所需的文件。 现在,我想要另一种格式的输出。比方说,
write_func("Output is :"+c)
以便输出在文件中具有有意义的名称。我该怎么做? 为什么我不能写一个整数到文件?我在写入文件之前 int = str(int)吗?
答案 0 :(得分:3)
您无法直接添加/连接字符串和整数。
如果您执行的事情比"string :"+str(number)
更复杂,我强烈建议您使用string formatting:
write_func('Output is: %i' % (c))
答案 1 :(得分:2)
很简单,你这样做:
write_func('Output is' + str(c))
您必须先将c
转换为字符串,然后才能将其与另一个字符串连接起来。然后你也可以脱掉:
var = str(var)
从你的功能。
为什么我不能写一个整数 一份文件?我做,之前是int = str(int) 写入文件?
你可以将二进制数据写入文件,但数字的字节表示实际上并不是人类可读的。 -2例如是2的补码32位整数中的0xfffffffe
。当数字是float
时,情况会更糟:2.1是0x40066666
。
如果您打算使用人类可读的文件,则需要使用人类可读的字符。在ASCII文件中,“0.5”不是数字(至少不是计算机理解数字),而是字符'0', '.' and '5'
。这就是为什么你需要将你的数字转换为字符串。
答案 2 :(得分:2)
Python是一种strongly typed语言。这意味着,除其他外,您不能连接字符串和整数。因此,您必须在连接之前将整数转换为字符串。这可以使用格式字符串(作为Nick T suggested)或将整数传递给内置的str
函数(作为NullUserException suggested)来完成。
答案 3 :(得分:1)
来自http://docs.python.org/library/stdtypes.html#file.write
file.write(STR)
将字符串写入文件。没有回报价值。由于缓冲, 字符串可能实际上不会出现 文件直到flush()或close() 方法被称为。
请注意文档如何指定write
的参数必须是字符串。
因此,在将其传递给file.write()
之前,您应该自己创建一个字符串。