Python-使用函数写入文本文件?
我编写了一个简单的函数来写入文本文件。像这样,Python-使用函数写入文本文件?,python,file-io,function,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
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)?很简单,您会:
write_func('Output is' + str(c))
您必须先将c
转换为字符串,然后才能将其与另一个字符串连接起来。然后,您还可以取下:
var = str(var)
从你的功能
为什么我不能写一个整数 档案?我知道,int=str(int)之前 写入文件 您可以将二进制数据写入文件,但数字的字节表示形式并不是真正的人类可读的-例如,2是2的补码32位整数中的
0xfffffffe
。当数字为浮点值时,情况更糟:2.1为0x40066666
如果您计划拥有一个人类可读的文件,则需要在其上添加人类可读的字符。在ASCII文件中,“0.5”不是数字(至少不是计算机理解的数字),而是字符“0”、“0.”和“5”
。这就是为什么您需要将数字转换为字符串。您不能直接添加/连接字符串和整数
如果您要执行比字符串“+str(number)
”更复杂的操作,我强烈建议您使用:
从
file.write(str)
将字符串写入文件。没有返回值。由于缓冲,
字符串实际上可能不会显示在中
直到flush()或close()关闭
方法被调用
请注意文档如何指定write
的参数必须是字符串
因此,在将字符串传递到
文件之前,您应该自己创建一个字符串。write()
Python是一种语言。这意味着,除其他外,不能将字符串和整数连接起来。因此,在连接之前,必须将整数转换为字符串。这可以通过使用格式字符串(如Nick T)或将整数传递给内置的str
函数(如NullUserException)来实现。我不同意人类可读性参数。实际上,write
接受的str
是一个字节字符串。它也可以是(短)int的4字节表示形式(您可以使用struct
module获得)。@Constantin好的,您更喜欢0x3F000000
还是0.5?我认为争论应该是这样的:为什么不能将整数写入文件?因为write
需要一系列字节。如果你想要二进制数据,那么就给它二进制数据。如果您想要可读/ASCII/unicode(如OP所需),则为其提供可打印字节。文件包含您指定的内容:P@NullUserException,有时我更喜欢0x3F000000。尽管如此,Python中的file.write
接受字节字符串,但不接受整数或其他任意对象,这一事实背后的设计决策给出了错误的理由。这和结果文件的可读性无关。呃,我不能正确理解措辞。请随意编辑我的答案。
write_func('Output is: %i' % (c))