Принудительный вывод в одну строку в python
Я знаком с переносом текста, однако мне было интересно, есть ли способ предотвратить перенос текста. Если у вас есть длинная инструкция печати, когда она достигает конца строки, она автоматически оборачивается и начинает новую строку. Есть ли способ заставить его напечатать весь оператор в одну строку, даже если он не подходит? Я бы предпочел, чтобы текст обрезался, когда он достигает конца окна, а не переносился на следующую строку.
Точнее: я пытаюсь перечислить содержимое каталога в одну строку и только одну строку, потому что в следующей строке будет перечислено содержимое другого каталога. Он предназначен только для предварительного просмотра содержимого каталога, поэтому мне все равно, не выводит ли программа все содержимое, если они не помещаются в одну строку. Тем не менее, я хочу использовать как можно больше горизонтального пространства. Вместо того, чтобы вносить кодовый фактор в ширину окна (даже если пользователь изменяет его размер) и длину каждого имени файла, чтобы определить, сколько имен файлов может поместиться в одной строке. Мне было любопытно, было бы проще и эффективнее просто обрезать текст в конце строки, тем более что ни в одном из каталогов не должно быть более 15 файлов, а зачастую их меньше (но иногда содержимое может ' т все умещается на одной линии). Вот грубый пример того, что я пытаюсь:
import os
while 1:
wd = input("Input full path for directory: ")
try:
os.listdir(wd)
except:
print("invalid input...")
continue
break
list = os.listdir(wd)
print(wd, ": ", end=" ")
try:
print(os.listdir(wd)) # THIS IS WHERE I WANT TO FORCE THE OUTPUT TO A SINGLE LINE
except:
print()
1 ответ
Для любой заданной ширины:
print_width = 79
Просто распечатайте фрагмент содержимого каталога, соединенного пробелами:
print(' '.join(os.listdir(wd))[:print_width])
Если вы не знаете ширину, но можете печатать юникод, вы можете попытаться заменить пробелы неразрывными пробелами, и это может сработать, если ваш фрейм не принудительно переносит:
print(u"\u00A0".join(os.listdir(wd)))