Python 写入文件并打印到屏幕,但彼此不同步
我写文件有问题。 似乎发生了这样的情况:一个程序以0,1,2,3(第0、第一、第二、第三)的顺序将数字打印到屏幕上,但以-1、0、1、2的顺序写入文件。即使“打印到屏幕”命令跟随“写入文件”命令。 下面是示例代码。有没有办法让它按0,1,2,3的顺序写入文件 非常感谢-ScripthamPython 写入文件并打印到屏幕,但彼此不同步,python,Python,我写文件有问题。 似乎发生了这样的情况:一个程序以0,1,2,3(第0、第一、第二、第三)的顺序将数字打印到屏幕上,但以-1、0、1、2的顺序写入文件。即使“打印到屏幕”命令跟随“写入文件”命令。 下面是示例代码。有没有办法让它按0,1,2,3的顺序写入文件 非常感谢-Scriptham import random import time ln = 4 mins = 10 j = 0 n_sensor = 0 temp_c = 0 data_file = "/home/pi/laborator
import random
import time
ln = 4
mins = 10
j = 0
n_sensor = 0
temp_c = 0
data_file = "/home/pi/laboratory/test.csv"
def read_temp():
temp_c = 100 * random.random()
return str("%.3f"% temp_c)
for j in range (1,mins):
f = open(data_file,'a')
f.write("\n" + str(j))
f.close
for n_sensor in range (0,ln):
#device_file_1 =
print("A " + str(n_sensor))
x = read_temp()
f = open(data_file, 'a')
f.write("," + x)
f.close
print("OP temp_c = ", x)
#time.sleep(0.5)
time.sleep(10) #normally would be 59.5 or 60 or similar
quit()
问题很可能是您多次打开输出文件,但从未关闭它
您应该在循环之前执行一次
f=open(data_file,'a')
。然后在完成所有操作后,调用f.close()
(f.close
与f.close()
!)不同。问题很可能是您打开输出文件几十次,但从未关闭它
您应该在循环之前执行一次
f=open(data_file,'a')
。然后在完成所有操作后,调用f.close()
(f.close
与f.close()
!)不同。要确保文件始终处于关闭状态,应使用with
语句。
例如:
with open(data_file, 'a') as f:
f.write("\n" + str(j))
这将关闭文件,即使在写入过程中发生异常
或者,您需要使用以下内容:
f = open(data_file, 'a')
try:
f.write("\n" + str(j))
finally:
f.close()
要确保文件始终处于关闭状态,应使用with
语句。
例如:
with open(data_file, 'a') as f:
f.write("\n" + str(j))
这将关闭文件,即使在写入过程中发生异常
或者,您需要使用以下内容:
f = open(data_file, 'a')
try:
f.write("\n" + str(j))
finally:
f.close()
谢谢你们两位的建议,程序现在运行正常了。问题解决了。脚本如果您的问题已得到回答,请将其中一个解决方案标记为正确。谢谢skyhisi。我不知道如何把事情标记为正确。有关信息,两个答案的部分都用于解决问题。您应该能够单击问题旁边的答案向上/向下按钮下方的绿色勾号图标。看看旅游页面:谢谢你们的建议,这个程序现在可以正常运行了。问题解决了。脚本如果您的问题已得到回答,请将其中一个解决方案标记为正确。谢谢skyhisi。我不知道如何把事情标记为正确。有关信息,两个答案的部分都用于解决问题。您应该能够单击问题旁边的答案向上/向下按钮下方的绿色勾号图标。请查看巡更页面: