【发布时间】:2014-07-11 18:51:37
【问题描述】:
我对文本换行很熟悉,但是我想知道是否有办法防止文本换行。如果你有一个很长的打印语句,当它到达行尾时,它会自动换行并开始一个新行。有没有一种方法可以强制它将整个语句打印到一行,即使它并不完全适合?我宁愿文本在到达窗口末尾时被切断,而不是换行到下一行。
更准确地说:我试图在一行中列出一个目录的内容,而且只有一行,因为下一行将列出不同目录的内容。它只是为了预览目录包含的内容,所以我不在乎程序是否输出所有内容,如果它们不能全部放在一行中。但是,我希望它利用尽可能多的水平空间。而不是将代码因素考虑到窗口的宽度(即使用户调整它的大小)和每个文件名的长度来确定它可以在一行中容纳多少个文件名。我很好奇在行尾删除文本是否会更容易和更有效,特别是因为没有一个目录将有超过 15 个文件并且通常更少(但有时内容可以' t都适合一行)。这是我正在尝试的一个粗略示例:
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()
【问题讨论】:
-
不要使用
list作为变量名。 -
如果你不知道窗口有多大,你怎么知道“在末尾剪掉文本”多少?文本换行可能是由终端完成的,因此即使您决定从单行输出的末尾截掉固定数量的字符,调整窗口大小也可能导致输出换行。
标签: python python-3.x printing string-formatting