gpt4 book ai didi

python - 如何覆盖以前打印的文本?

转载 作者:行者123 更新时间:2023-12-04 01:08:37 25 4
gpt4 key购买 nike

我查看了一些已经提出的问题,但似乎没有一个适合我的情况。所以我有一个非常基本的程序可以显示比特币的当前值(value):

import requests
import os
import sys
import time
while True:
main_api = ('https://api.coindesk.com/v1/bpi/currentprice.json')
json_data = requests.get(main_api).json()
json_updated = json_data['time']['updated']
json_value = json_data['bpi']['USD']['rate']
time.sleep(1)
print('\n' 'Last Updated: ' + json_updated)
print('\n' "Bitcoin price: " + json_value + " USD")

它在大多数情况下都运行良好。但是有一个小问题,代码每次(每秒)执行一次,它都会在终端中创建更多显示货币和上次更新时间的文本。但它不会删除以前的文本,这使它看起来很难看并且有点困惑,所以我的目标是让它看起来像,在终端中,只有一次文本实例会自行更新,从而提供更清晰的外观。

我见过一些解决方案,例如:

for x in range(10):
print(x, end='\r')
print()

来自 How to overwrite the previous print to stdout in python?

import time
for x in range (0,5):
b = "Loading" + "." * x
print (b, end="\r")
time.sleep(1)

来自 Remove and Replace Printed items

但老实说,我不知道如何或是否可以将这些解决方案合并到我自己的代码中,因为我的程序与解决方案中使用的程序大不相同,或者我只是菜鸟,可能是后者,哈哈。

谢谢。

最佳答案

这是一个同时更新时间和货币的解决方案。只需在每次获取更新数据之前清除终端窗口即可。

import requests
import os
import sys
import time
def clear():
if sys.platform=="win32":
os.system("cls") # cmd clear command for Windows systems
elif sys.platform in ["linux", "darwin"]:
os.system("clear") # terminal clear command for Linux and Mac OS
else:
raise OSError("Uncompatible Operating-System.")
while True:
main_api = ('https://api.coindesk.com/v1/bpi/currentprice.json')
json_data = requests.get(main_api).json()
json_updated = json_data['time']['updated']
json_value = json_data['bpi']['USD']['rate']
time.sleep(1)
clear()
print('\n' 'Last Updated: ' + json_updated)
print('\n' "Bitcoin price: " + json_value + " USD")

如果它看起来卡住,您还可以为当前小时添加一行。

import requests
import os
import sys
import time
from datetime import datetime
def clear():
if sys.platform=="win32":
os.system("cls") # cmd clear command for Windows systems
elif sys.platform in ["linux", "darwin"]:
os.system("clear") # terminal clear command for Linux and Mac OS
else:
raise OSError("Uncompatible Operating-System.")
while True:
main_api = ('https://api.coindesk.com/v1/bpi/currentprice.json')
json_data = requests.get(main_api).json()
json_updated = json_data['time']['updated']
json_value = json_data['bpi']['USD']['rate']
time.sleep(1)
clear()
print('\n' "Current date and time :", str(datetime.now())[:-7])
print('\n' 'Last Updated: ' + json_updated)
print('\n' "Bitcoin price: " + json_value + " USD")

它应该有所帮助,除非您不想清除屏幕。

关于python - 如何覆盖以前打印的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65538507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com