强制使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 个回答
-1
对于任何给定的宽度:
print_width = 79
只需打印出目录内容的一个片段,用空格连接起来:
print(' '.join(os.listdir(wd))[:print_width])
如果你不知道宽度,但可以打印unicode字符,你可以尝试用不换行的空格来替换普通空格,如果你的框架不强制换行,这样可能会有效:
print(u"\u00A0".join(os.listdir(wd)))