簡體   English   中英

在python中將打印語句強制為單行

[英]Force print statement to a single line in 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()

對於任何給定的寬度:

print_width = 79

只需打印包含空格的目錄內容字符串的一部分:

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

如果您不知道寬度但可以打印unicode,則可以嘗試用不間斷的空格替換空格,如果您的框架不強制換行,則可以使用該空格:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM