How to Display Dynamic Output in the Same Screen Line
In some circumstances, it's desirable to replace the current console output with new data rather than appending it. One common approach is to utilize the carriage return character ('r') to return to the beginning of the current line:
Simple Version:
for x in range(10): print(x, end='\r') print()
By ending each print statement with 'r', the cursor is returned to the start of the line without advancing to the next line. This allows the subsequent print statement to overwrite the previous output.
Line Cleaning:
If the new output is potentially shorter than the current line, an additional step is required to clear the remaining characters:
for x in range(75): print('*' * (75 - x), x, end='\x1b[1K\r') print()
The escape sequence 'x1b[1K' clears all characters from the cursor position to the end of the line.
Long Line Wrap:
For output that exceeds the line width, line wrapping can be disabled to ensure successive characters overwrite each other:
# Disable line wrapping print('\x1b[7l', end='') # Overwrite output for x in range(75): print('*' * (75 - x), x, end='\r') # Re-enable line wrapping print('\x1b[7h', end='') # Advance to next line print()
Note: It's crucial to re-enable line wrapping after disabling it to prevent any issues with future console output.
The above is the detailed content of How to Overwrite Console Output on the Same Line?. For more information, please follow other related articles on the PHP Chinese website!