Интерполировать / изменить размер ascii art в python? - PullRequest
0 голосов
/ 16 марта 2020

Я хочу изменить размеры ascii art. Скажем, это выглядит так:

..K
.T.
.A.

Я хочу увеличить его до некоторого числа n, чтобы оно выглядело так (n = 2)

....KK
....KK
..TT..
..TT..
..AA..
..AA..

Один из способов, который я подумал для этого нужно было преобразовать текст в матрицу их значений ascii и использовать некоторую функцию интерполяции для изменения размера матрицы, и преобразовать ее обратно в текст для достижения желаемого результата, но я не смог найти функцию, которая будет делать это для меня.

Какой самый простой способ сделать это. Если это упрощает, вы можете предположить, что n всегда равно 4. (Потому что в моей нынешней ситуации мне нужна эта шкала)

1 Ответ

2 голосов
/ 16 марта 2020

Предполагается, что у вас есть файл test.txt со следующим содержимым:

..K
.T.
.A.

Следующий код будет считывать файл и выдавать выходной файл test_out.txt, который содержит символы, умноженные по горизонтали и вертикали, в зависимости от того, что вы укажите для N:

N = 4

with open('test.txt', 'r') as f:
    with open('test_out.txt', 'w') as out_f:
        for line in f:
            # Repeat characters N times horizontally
            output = "".join([N * c for c in line.strip()])

            # Repeat lines N times vertically
            for _ in range(N):
                out_f.write(output + '\n')

Выход (test_out.txt) для N = 2:

....KK
....KK
..TT..
..TT..
..AA..
..AA..

Выход (test_out.txt) для N = 4:

........KKKK
........KKKK
........KKKK
........KKKK
....TTTT....
....TTTT....
....TTTT....
....TTTT....
....AAAA....
....AAAA....
....AAAA....
....AAAA....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...