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")
抱歉这个菜鸟问题,我在网站上查看了其他类似的问题,但找不到解决我问题的问题。
我是 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")