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

0 投票
4 回答
6756 浏览
提问于 2025-04-16 02:53

我写了一个简单的函数,用来把内容写入一个文本文件,代码如下:

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

Python是一种强类型语言。这意味着,简单来说,你不能把字符串和整数直接拼接在一起。所以在拼接之前,你需要先把整数转换成字符串。这可以通过使用格式化字符串(就像Nick T建议的那样)或者把整数传给内置的str函数(就像NullUserException建议的那样)来实现。

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

撰写回答