Python file.write()不写入文件
我正在尝试为日志文件创建def,这是我的脚本:Python file.write()不写入文件,python,file,Python,File,我正在尝试为日志文件创建def,这是我的脚本: import sys import time path= 'pc_path' file = path + '\\' + 'test.txt' files = open(file, 'w') files.close() def log(msg): time = time.time() filess = open(file, 'a') filess.write(msg) filess.close() val = 1
import sys
import time
path= 'pc_path'
file = path + '\\' + 'test.txt'
files = open(file, 'w')
files.close()
def log(msg):
time = time.time()
filess = open(file, 'a')
filess.write(msg)
filess.close()
val = 10
val1 = 32
try:
operazione = val + val1
print('ok')
print(operazione)
msg = operazione
log(msg)
except:
sys.exit()
脚本将创建一个txt文件,但不会将def()函数写入txt
谢谢您正在尝试将整数写入文件;
file.write()
方法只接受字符串
首先转换为字符串:
filess.write(str(msg))
除了代码中的处理程序之外,您真的不应该使用覆盖的;你真的不想玩口袋妖怪然后把他们都抓起来。这样做会丢失有价值的错误信息。看
您可以使用。尝试将整数写入文件;file.write()
方法只接受字符串
首先转换为字符串:
filess.write(str(msg))
除了代码中的
处理程序之外,您真的不应该使用覆盖的;你真的不想玩口袋妖怪然后把他们都抓起来。这样做会丢失有价值的错误信息。看
您可以只使用打开一个文件,然后关闭它,而不是滚动自己的文件。但是,您不需要在其中写入任何内容,因为函数write()
如果除了str()
类型的变量之外的任何内容都被传递给它,那么函数write()将失败!这里有一个替代write()
的方法,限制较少:
with open('file_name.txt', 'w') as file:
print(variable_you_want_written, file=file, end='\n')
print()
函数限制较少,在这里是一个更好的选项,因为它会自动将接收到的输入格式化为str()
,而不考虑初始的类型()
,并且不包括函数、实例和生成器对象,这些对象将显示为如下内容:
此外,请注意,它们转换为的视觉格式(以及随后显示或写入文件)可能不一定符合您的喜好,因此我建议您对结果进行实验,看看在特定情况下什么效果最好
对于print()
上的Python 3文档,打开一个文件,然后关闭它。但是,您不需要在其中写入任何内容,因为函数write()
如果除了str()
类型的变量之外的任何内容都被传递给它,那么函数write()将失败!这里有一个替代write()
的方法,限制较少:
with open('file_name.txt', 'w') as file:
print(variable_you_want_written, file=file, end='\n')
print()
函数限制较少,在这里是一个更好的选项,因为它会自动将接收到的输入格式化为str()
,而不考虑初始的类型()
,并且不包括函数、实例和生成器对象,这些对象将显示为如下内容:
此外,请注意,它们转换为的视觉格式(以及随后显示或写入文件)可能不一定符合您的喜好,因此我建议您对结果进行实验,看看在特定情况下什么效果最好
对于print()
上的Python 3文档
将变量time
重命名为类似current\u time
的名称,以避免与模块time
冲突
您将msg
(一个整数)传递到方法write
。您应该首先将其转换为字符串:msg=str(operazione)
将变量time
重命名为类似current\u time
的名称,以避免与模块time
冲突
您将msg
(一个整数)传递到方法write
。您应该首先将其转换为字符串:msg=str(operazione)
它应该将msg
写入文件,其中msg
等于operazione
,因为msg=operazione
。如果给出的任何答案都针对您的问题,请将其标记为这样,以便线程关闭,并且问题显示在黑板上。否则,请详细说明。它应该将msg
写入文件,其中msg
等于operazione
,因为msg=operazione
。如果给出的任何答案都解决了您的问题,请将它们标记为这样,以便线程关闭,并且问题显示在黑板上。否则,请详细说明。我建议使用file.write()
而不是将print()
调用的stdout重定向到文件。您可以这样做。两者都可以。然而,print()
的优点是,您不需要诱导转换,它们会(尝试)在其中写入一些内容。他们甚至使用'a'
附加模式。但是用字符串以外的任何东西调用file.write()
都会失败。@MartijnPieters没错。它确实失败了。我不写的意思是,由于函数失败,文件实际上没有任何内容。我的措辞很糟糕,我会修改。对,print()
接受任何类型并将其转换为字符串。不过,您不需要添加end='\n'
,这是默认设置。您可能需要添加一个明确的解释,解释为什么print()
在这里比使用file.write()
效果更好。我建议使用file.write()
而不是将print()
调用的stdout重定向到文件。您可以这样做。两者都可以。然而,print()
的优点是,您不需要诱导转换,它们会(尝试)在其中写入一些内容。他们甚至使用'a'
附加模式。但是用字符串以外的任何东西调用file.write()
都会失败。@MartijnPieters没错。它确实失败了。我不写的意思是,由于函数失败,文件实际上没有任何内容。我的措辞很糟糕,我会修改。对,print()
接受任何类型并将其转换为字符串。不过,您不需要添加end='\n'
,这是默认设置。您可能需要添加一个明确的解释,解释为什么print()
在这里比使用file.write()
效果更好。我建议您这样做