小编cha*_*303的帖子

高频循环中的Python file.close()和with()行为

我正在使用Raspberry PI并使用python脚本从声音传感器输出值.为了显示这一点,我在我的PI上使用了一个HTML页面,它调用了一个javascript include,它只是一行,用于定义一个值,用于更改Google量表显示的内容.所有这些都非常简单明了,并且可以满足我的需求.(添加了奖金,我实际上了解它是如何工作的.)

.js文件是由我的python脚本写出来的,它也做了很多其他的东西.这一切实际工作正是我想要它,而被写入到文件中的值准确,不正确地显示在仪表如果我运行它作为一个循环,而不是在它运行一个连续的"监控服务"模式直到被打断

这就是我认为问题开始的地方:测量声级的循环在5秒内运行~30k次.在我的python代码中,我使用:

with open(web_file, 'w') as f_output:
    f_output.write("var int_level = " + str(per_detected))
    f_output.close()
Run Code Online (Sandbox Code Playgroud)

我这样做,因为我想一想我每次都需要做密切,因为循环的(我知道"和"一个隐含的接近,而是因为我每天都似乎更好的时间重新打开文件强行将其关闭,以确保),我认为这也可能是问题.(我也是故意使用'w'模式,因此我每次都可以重置文件,因为它只有一行 - 看起来比更换值更快,计算成本更低)

该症状是谷歌计HTML页面刷新,每5秒一次加载新的价值,但本身规只呈现每10次刷新一次,也许,但是这是完全随机的,显然表明有在.js文件没有价值被退回.我认为这意味着它可能会在几次尝试中获胜并在收盘前点击文件,或者它是否太快而且这是一种愚蠢的方式呢?

另外需要注意的是,当我从PI命令行中获取level.js(< - 包含文件)时,在"查杀"我的python代码之后,它是空的.

我有所有代码(包括HTML页面):

https://www.GitHub.com/ChrisHarrold/Pi-Projects

如果您想查看更多细节.它被评论为6种方式直到星期日,所以要弄清楚我做了什么以及为什么这样做应该是微不足道的.

javascript python

2
推荐指数
1
解决办法
50
查看次数

标签 统计

javascript ×1

python ×1