我怎样才能始终如一地计时打印
How can I time prints consistently
我正在通过编写一堆通常无用的代码来训练我的 python 能力,今天我尝试像以前一样使用 ASCII 艺术在控制台中打印 Bad apple,我做了一切很好,直到我不得不为打印计时,以便它们在 3 分 52 秒内结束,保持一致的帧率。我试着在打印之间添加一个 time.sleep()
,希望它能神奇地工作,但显然它没有。
我定制了这个 git https://github.com/aypro-droid/image-to-ascii to transform frames to ASCII art and used https://pypi.org/project/opencv-python/ 的一个版本,用于将视频转换为帧
这是我的代码:
import time
frames = {}
#saving each .txt frame on a dict
for i in range(6955):
f = open("Frames-to-Ascii/output/output{0}.txt".format(i), "rt")
frames['t{0}'.format(i)] = f.read()
f.close()
#start "trigger"
ini = input('start(type anything): ')
start = time.time()
#printing the 6954 frames from the dict
for x in range(6955):
eval("print(frames['t{0}'])".format(x))
#my attempt at timing
time.sleep(0.015)
end = time.time()
#calculating how much time the prints took overall, should be about 211.2 seconds evenly distributed to all the "frames"
print(end-start)
框架示例:
here
我正在尝试将照片与视频完美同步,以便以后可以在其他地方使用它,有什么提示吗?
据我了解,您需要以给定的恒定速率打印帧?
如果是,那么您需要评估用于打印的时间,然后为延迟减去打印时间而休眠。类似于:
for x in range(6955):
start = time.time()
print("hips")
end = time.time()
time.sleep(0.5-(end-start))
因此循环将花费(大约)0.5 秒到 运行。 (根据您的需要相应地更改值)。
当然如果单次打印耗时比延迟时间长,则需要另寻策略:例如跨过下一帧等
我正在通过编写一堆通常无用的代码来训练我的 python 能力,今天我尝试像以前一样使用 ASCII 艺术在控制台中打印 Bad apple,我做了一切很好,直到我不得不为打印计时,以便它们在 3 分 52 秒内结束,保持一致的帧率。我试着在打印之间添加一个 time.sleep()
,希望它能神奇地工作,但显然它没有。
我定制了这个 git https://github.com/aypro-droid/image-to-ascii to transform frames to ASCII art and used https://pypi.org/project/opencv-python/ 的一个版本,用于将视频转换为帧
这是我的代码:
import time
frames = {}
#saving each .txt frame on a dict
for i in range(6955):
f = open("Frames-to-Ascii/output/output{0}.txt".format(i), "rt")
frames['t{0}'.format(i)] = f.read()
f.close()
#start "trigger"
ini = input('start(type anything): ')
start = time.time()
#printing the 6954 frames from the dict
for x in range(6955):
eval("print(frames['t{0}'])".format(x))
#my attempt at timing
time.sleep(0.015)
end = time.time()
#calculating how much time the prints took overall, should be about 211.2 seconds evenly distributed to all the "frames"
print(end-start)
框架示例: here
我正在尝试将照片与视频完美同步,以便以后可以在其他地方使用它,有什么提示吗?
据我了解,您需要以给定的恒定速率打印帧? 如果是,那么您需要评估用于打印的时间,然后为延迟减去打印时间而休眠。类似于:
for x in range(6955):
start = time.time()
print("hips")
end = time.time()
time.sleep(0.5-(end-start))
因此循环将花费(大约)0.5 秒到 运行。 (根据您的需要相应地更改值)。
当然如果单次打印耗时比延迟时间长,则需要另寻策略:例如跨过下一帧等