Python - 使用函数写入文本文件?

时间:2010-08-17 06:49:38

标签: python file-io function

我写了一个简单的函数来写入文本文件。像这样,

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)吗?

4 个答案:

答案 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()之前,您应该自己创建一个字符串。