首页 > 解决方案 > Ascii 艺术的 Y 位置不变,而 X 位置不变

问题描述

我在这里有这段代码:

import sys
import subprocess
import os
from colorama import init
init()

path = os.getcwd()
frame_logo = []
frame_data = []
frame_name = ["frame1.txt", "frame2.txt", "frame3.txt", "frame4.txt"]

for i in frame_name:
    fullPath = "{}\\assets\\".format(path)
    with open(fullPath + str(i), "r+") as f:
        readData = f.read()
        frame_data.append(readData)
with open(fullPath + "ldr_logo.txt", "r+") as f:
    readData = f.read()
    frame_logo.append(readData)

def printPos(x, y, text_to_print):
     sys.stdout.write("\x1b[%d;%df%s" % (x, y, text_to_print))
     sys.stdout.flush()

def Animation():
    print(" ")
    printPos(1, 20, frame_data[0])
...

因此,frame_name列表中的每个文件都包含 Ascii 艺术,并且文件内容保存在frame_data(因此,frame_data[0]包含 Ascii 艺术frame1.txt等......)。当我尝试printPos针对简单字符串(例如“foo”)使用该函数(在特定位置打印)时,它可以工作,但是当我尝试针对 Ascii 艺术(frame_data[0]例如)执行此操作时,只有 X 位置移动并且Y 保持不变。

我试过printPos(1, 20, str(frame_data[0]))了,它给出了相同的输出,甚至在一个列表中创建了另一个简单的“foo”字符串来测试(因为当我尝试打印 Ascii 艺术时我怀疑列表)printPos并且它有效。我不知道为什么 Y pos 不会随着 Ascii 艺术而改变,有什么线索吗?谢谢!

标签: python-3.xlistpositionascii-art

解决方案


推荐阅读