如何在 python 中的一盒 astricks 中打印字符串


def main():
def read_txt():
input_file = open("input.txt", "r") 
global text
text = input_file.readline()
input_file.close()
return text
read_txt()
def write_txt():
output_file.write(text)
output_file.close()
write_txt()
main()

输入的内容.txt只是任意长度的单行字符串。我正在尝试读取输入的内容.txt并将其写入另一个文件输出.txt。但是字符串应该在一个不超过 50 个字符的星号框中,单行字符串应该分成多行。但是来自输入.txt的字符串可以是任意长度。
例如,如果输入的内容.txt是"我真的很喜欢编程,因为它很有趣!"那么输出.txt应该是这样的,

****************************************
*                                      *
*    I really love programming         *
*    becuase it is fun!                *
*                                      *
*                                      *
*                                      *
*                                      *
*                                      *
*                                      *
*                                      *
****************************************

所以我真的需要帮助制作盒子。

为此,您可以使用文本换行库。

有了它,您的代码将类似于以下内容:

import textwrap
# your code
def read_txt():
input_file = open("input.txt", "r") 
global text
text = input_file.readline()
input_file.close()
padding = 3  # 3 spaces from left and right
max_line_length = 48 - padding * 2  # 48 because 50 - 2*asterisks
lines = textwrap.wrap(text, max_line_length)
wrapped_text = 50 * '*' + 'n'
for line in lines:
wrapped_text += '*{pad}{text:{width}}{pad}*n'.format(text=line, pad=' '*padding, width=max_line_length)
wrapped_text += 50 * '*'
return wrapped_text

最新更新