【发布时间】:2020-03-24 22:07:22
【问题描述】:
之前已经询问并回答了如何覆盖最后打印行的问题(例如here),但似乎所有答案都假设您用类似长度的内容覆盖最后一行,例如在进度指示器中“2 % 完成”覆盖“1 % 完成”。
但是,我想打印可变长度语句,例如 "Now reading file path/to/xxx/file.ext...",其中下一个文件名可能更短。
如果我使用简单的方法,首先打印"Now reading ./path/with/many/long-named/subdirectories/version/LongFileNameAsWell.ext...",然后打印"Now reading ./file.ext...",结果是一行显示
Now reading ./file.ext... ng-named/subdirectories/version/LongFileNameAsWell.ext
一种解决方法是在我的所有打印字符串后面加上空格,但是我需要确保我不会换行,同时仍然有足够的空格来覆盖整个文件名。这一切都增加了很多开销、错误空间等。
有没有 Pythonic 的方式来做到这一点?
为了记录,我在 Spyder 上使用 Python 3.7 和 Windows 上的 IPython 控制台
【问题讨论】:
-
@MrFuppes 我不确定环境的哪一部分在这里/很重要,感谢您的建议(现已编辑)
-
必须对我的答案进行编辑:
get_terminal_size().columns返回的线宽设置似乎不适用于很长的字符串,至少在我的 IPython / Spyder 版本中...( Spyder 4.0.0rc3 中的 IPython 7.9.0)