为什么下面的附加代码可以在我的 Macbook 的 VS Code 应用程序上运行,但不能在我在 Parallels Desktop 上的同一设备上运行的 VS Code 应用程序上运行?

问题描述 投票:0回答:1

对 python 相当陌生,我已经设法解决了之前克服的所有问题。但是,当涉及到这一点时,我被困住了。我需要运行我在 Parallels Desktop 上编写的脚本,因为我无法在我的 Macbook 的 VS 代码上使用 MetaTrader 5 python 库来编写我正在编写的算法。

我遇到的问题是我需要每 5 分钟运行一次脚本的某个部分,所以我使用以下代码来触发它。

import time

while True:
    if time.time() % (60 * 5) == 0:
        print(time.strftime('%H:%M:%S %Y-%m-%d', time.gmtime(time.time())))  #code 

我想要触发跟随...

代码在我的 Mac 的 VSCode 上没有问题,但是当我在 Parallel 的桌面 VScode 上运行它时,没有输出。也没有错误。

这有什么原因吗?我该如何克服?

谢谢你们,它已经困扰了我一段时间。

python visual-studio-code parallels
1个回答
0
投票

我看到多个来源为什么上面的代码有问题。 如果你看看:

print(time.time())
#output
1677345971.6591382

小数点分隔符

.
后面的所有内容都是秒的很小一部分(单位微秒及以下)。

如果你尝试

time.time() % (60 * 5) == 0
击中看起来像
time.time()
1677345971.00000000
的机会是最小的,因为你的代码不会在那个精确的微秒被触发。

但只有在那种情况下

time.time() % (60 * 5) == 0
才是正确的,因为您的模数计算中没有留下微秒。

我不知道为什么它可以在您的 Mac 上运行,但我想这是因为您的 Mac 没有使用浮动来显示

time.time()
.

在您的情况下,您可以尝试使用以下代码:

if int(time.time()) % (60 * 5) == 0:

这将您的时间从

1677345971.6591382
变成
1677345971
,单位是秒。现在你的计算
int(time.time()) % (60 * 5) == 0
不仅可以通过留下0微秒的机会来实现。

© www.soinside.com 2019 - 2024. All rights reserved.