Python - 用函数写入文本文件?
我写了一个简单的函数,用来把内容写入一个文本文件,代码如下:
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 个回答
2
很简单,你只需要这样做:
write_func('Output is' + str(c))
在把 c
和其他字符串拼接之前,你得先把它转换成字符串。然后你也可以去掉:
var = str(var)
在你的函数里。
为什么我不能直接把一个整数写入文件?我在写入文件之前要把整数转换成字符串吗?
你是可以把二进制数据写入文件的,但数字的字节表示方式其实对人来说不太友好。比如,-2在32位的补码表示中是 0xfffffffe
。当数字是 float
类型时就更糟了:2.1的表示是 0x40066666
。
如果你想要一个人能看懂的文件,你就需要在文件里放一些人能读懂的字符。在一个ASCII文件中,'0.5'并不是一个数字(至少在计算机看来不是),而是字符 '0'、'.' 和 '5'
。所以这就是为什么你需要把数字转换成字符串的原因。
3
你不能直接把字符串和整数加在一起。
如果你想做的事情比 "string :"+str(number)
更复杂,我强烈建议你使用字符串格式化:
write_func('Output is: %i' % (c))