我在这里有此代码:
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 art,并且文件内容保存在frame_data
中(因此,frame_data[0]
包含frame1.txt
等中的Ascii art。 )。当我尝试对简单的字符串(例如“ foo”)使用printPos
函数(以在特定位置打印)时,它可以工作,但是当我尝试对Ascii艺术({{1} }),只有X位置移动,Y保持不变。
我尝试了frame_data[0]
,它给出了相同的输出,甚至在列表中制作了另一个简单的“ foo”字符串进行测试(因为我在尝试打印Ascii艺术品时怀疑是列表)到printPos(1, 20, str(frame_data[0]))
它和它的工作。我不知道为什么Y pos不随Ascii艺术而改变,有任何线索吗?谢谢!