python - 在同一命令行中删除和替换打印的单词
问题描述
我想编写一个函数,其中用户给出文件名并设置“速度”参数以以所需的速度显示单词。然后该函数开始在文件中逐字打印,但在同一命令行上替换前一个。
这是我的功能:
def quick_reader(a):
fhandle = open(a)
document = fhandle
for line in document:
words = line.split()
for i in range(0,len(words)):
print("> " + words[i], end="\r")
time.sleep(1)
问题在于,到第三个单词时,它开始为某些单词添加额外的字母并将其弄乱。它确实打印在同一行并替换了前一个单词,它只是弄乱了单词。
解决方案
我之前(现已删除)的评论不正确,输出退格不会删除字符。相反,您需要用空格覆盖该行以摆脱它们:
import time
def quick_reader(filepath, delay=1):
with open(filepath) as file:
for line in file:
for word in line.split():
print('>', word, end='', flush=True)
time.sleep(delay)
print('\r ', ' ' * len(word), end='\r', flush=True)
print()
推荐阅读
- github - how to delete someone else's repo? (not forked)
- node.js - 我们应用程序中的日期格式
- python - Data doesn't fit
- c# - C#: How to Serialize a Dynamic Component of System.Type to send via SignalR?
- c++ - 如何在 WndProc 中处理 char 的 key_down 和 key_up?
- javascript - 强制初始化类以使用方法?
- laravel - 有没有办法只从这个 Laravel 查询中返回 ID
- python - 在 Python Pandas 中,如何根据现有的 2 列重复值添加新列
- android - 如何修复 viewBinding { enabled true } 中未发生的错误 buildFeatures { viewBinding = true }
- excel - EXCEL VBA:For循环涉及检查重复和继续序列