强制打印语句到python中的单行

时间:2014-07-11 18:51:38

标签: python python-3.x printing string-formatting

我熟悉文字换行,但我想知道是否有办法阻止文字换行。如果你有一个长打印语句,当它到达行尾时它会自动换行并开始一个新行。是否有一种方法可以强制它将整个语句打印到一行,即使它不适合?我希望文本在到达窗口末端时切断,而不是包裹到下一行。

更确切地说:我正在尝试在一行上列出目录的内容,并且只列出一行,因为下一行将列出不同目录的内容。它只是为了预览一个目录包含的内容,所以我不在乎程序是否输出所有内容,如果它们不能全部放在一行上。但是,我希望它能利用尽可能多的水平空间。而不是使窗口宽度中的代码因子(即使用户调整大小)和每个文件名的长度来确定它可以在一行中容纳多少个文件名。我很好奇,如果只是在行结束时剪切文本会更容易和更有效,特别是因为没有一个目录会有超过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 个答案:

答案 0 :(得分:0)

对于任何给定的宽度:

print_width = 79

只需打印一个由空格连接的目录内容字符串片段:

print(' '.join(os.listdir(wd))[:print_width])

如果你不知道宽度但可以打印unicode,你可以尝试用不间断的空格替换空格,如果你的框架不强制包装它可能会有效:

print(u"\u00A0".join(os.listdir(wd)))