簡體   English   中英

Python:使用curses庫打印ASCII文本文件

[英]Python: Printing ASCII text file using curses library

我正在嘗試在 python 中打印包含 ASCII 藝術的文本文件。

我意識到簡單的方法是做這樣的事情

with open(image, 'r') as f:
for line in f:
    print(line.rstrip())

但我想使用 curses 庫打印它,以便我可以顯示其他文本以及圖像。 到目前為止,這是我想出的。

lines=[]
with open('image.txt',"r",encoding="utf8") as f:
        lines.append(f.readlines())

for a in lines:
    char = str(("".join(a)))
    stdscr.addstr(y, x, char)

這段代碼完成了 90% 的工作,但我無法讓圖像向右移動。 我可以通過更改 stdscr.addstr(y, x, char) 中的 y 來選擇圖像從哪一行開始,但更改 x 對它從哪一列開始沒有影響。

有沒有辦法來解決這個問題? 謝謝。

當您調用lines.append()時,您將獲取f.readlines()返回的整個列表,並將其作為單個項目添加到lines中。 然后for a in lines只循環一次,將a (整個文件)的元素重新連接在一起並將其傳遞給addstr() ,它解釋嵌入的換行符,將第一行之后的每一行重置為第一列。

而不是lines.append() ,您要么需要lines.extend() ,或者更有可能只lines = f.readlines() 然后您可以省去連接,盡管您可能應該去除換行符。 例如:

with open('image.txt',"r",encoding="utf8") as f:
    lines = f.readlines()

for a in lines:
    # set x and y here
    stdscr.addstr(y, x, a.rstrip())

暫無
暫無

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

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