python: 多个打印行被覆盖

python: multiple print lines to be overwritten

抱歉这个菜鸟问题,我在网站上查看了其他类似的问题,但找不到解决我问题的问题。

我是 python 的新手,请原谅。 我正在尝试制作一个显示我的交易账户结果的机器人。

第一步我希望能够在终端中看到结果。 第二步是“将这些结果写在网页上”

我想要实现的是每一行打印都在相同的原始行上更新为新值。

函数的部分代码是这样的:

def eth_results():
    eth = s.get_wallet_balance()['result']['ETH']
    eth_starting_balance = 0.05015276
    eth_balance = eth['wallet_balance']
    eth_equity = eth['equity']
    eth_daily_pnl = format(eth['realised_pnl'],'.8f')
    eth_percentage_pnl = eth_starting_balance * (eth_starting_balance / (eth_balance - eth_starting_balance))
    print('\n--------------------------------------\n')
    print(f'Coin: ETHEREUM')
    print(f'Balance: {eth_balance}')
    print(f'Starting Balance: {eth_starting_balance}')
    print(f'Total Profit: {eth_percentage_pnl}')
    print(f'Total Equity: {eth_equity}')
    print('\n--------------------------------------\n')

然后我告诉它每 5 秒重复一次

while True:
  eth_results()
  time.sleep(5)

现在的输出是这样的但我希望在同一行中打印结果,只更新变量:

--------------------------------------

Coin: ETHEREUM
Balance: 0.0513822
Starting Balance: 0.05015276
Total Profit: 2.0458902716827083
Total Equity: 0.05133733

--------------------------------------


--------------------------------------

Coin: ETHEREUM
Balance: 0.0513822
Starting Balance: 0.05015276
Total Profit: 2.0458902716827083
Total Equity: 0.05133754

--------------------------------------


--------------------------------------

Coin: ETHEREUM
Balance: 0.0513822
Starting Balance: 0.05015276
Total Profit: 2.0458902716827083
Total Equity: 0.05133706

--------------------------------------

但是我做不到。 如果我使用 \r 只会替换最后一行。基本上我想替换所有行。 我很确定有多种方法可以实现这一点,也有多种方法可以“清理代码”,但现在我只是愿意找到任何“可行的解决方案”,而不是找到“唯一的最佳方法”。当然,当我获得更多经验时,我愿意以更好的方式编写代码。

奖金:之后我还想在 text/html/whatever 类型的文件上打印(和覆盖)相同的内容。但这不是现在的优先事项。

非常感谢

您可以打印一堆新行来清除控制台。

clear = "\n" * 100
print(clear)

您不能覆盖控制台中已打印的行,因为它是输出。

您可以使用以下

import os
print('text')
os.system("clear")