• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

парсим png на python

noted

Green Team
08.12.2019
107
14
BIT
0
Привет Уважаемые.
Есть задача ( может кто даже решал такой таск).
pwd.png

есть png, содержит пасс в виде тире и точек другого цвета.
идея пробегать по строкам png и выявлять другой цвет ну и дальше в скрипт....
для скармливания скрипту использовал модуль
Python:
from PIL import Image

def main():

    img = Image.open('.png')
    obj = img.load()
        import numpy as np   
    a = np.asarray(img)
        with open('a', 'w') as output_file:
                output_file.write(a)
несколько раз это сработало, но потом при большом колличестве строк, (как я понимаю) вывод этой функции стал резать информацию - все загнулось.

подскажите какую функцию надо использовать, или может есть более простое решение
 

f22

Codeby Academy
Gold Team
05.05.2019
1 922
226
BIT
1 668
Если говорить конкретно про твой код, то
1. импорт идёт в начале файла, каждый раз его дёргать нет смысла
2. открывается какой-то непонятный файл под названием .jpg у него точно такое имя? Обычно так обозначают только расширение
3. нет вызова этой функции, надеюсь, ты его просто не привёл.
4. Нужно как-то преобразовать np.asarray в строку, чтобы записать, например, через for

В итоге всё должно выглядеть как-то так
Python:
from PIL import Image
import numpy as np 
def main():
    path = "C:\\Python\\"
    img = Image.open(path + 'pic.png')
    obj = img.load()
  
    a = np.asarray(img)
    with open(path + 'a.txt', 'a') as output_file:
        for line in a:
            output_file.write(str(line) + "\n")

main()

Вот что будет лежать в файле a.txt
[[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]]
[[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[237 18 123]]
[[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]]
[[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[255 18 23]
[237 18 123]
[255 18 23]
[237 18 123]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]]
[[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]]
[[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]]
[[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]]
[[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[237 18 123]
[255 18 23]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]]
[[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]]
[[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]]
[[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]]
[[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[237 18 123]
[255 18 23]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]]
[[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]]
[[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[237 18 123]
[255 18 23]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]]
[[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]]
[[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[237 18 123]]
[[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]]
[[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[237 18 123]
[255 18 23]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]]
[[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]]
[[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[255 18 23]
[237 18 123]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]]
[[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]]
[[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[255 18 23]
[255 18 23]
[255 18 23]
[237 18 123]
[255 18 23]
[237 18 123]
[255 18 23]
[237 18 123]
[255 18 23]
[237 18 123]
[255 18 23]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]]
[[255 0 0]
[ 0 255 0]
[ 0 0 255]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]
[237 18 123]]
 

noted

Green Team
08.12.2019
107
14
BIT
0
Если говорить конкретно про твой код, то
1. импорт идёт в начале файла, каждый раз его дёргать нет смысла
2. открывается какой-то непонятный файл под названием .jpg у него точно такое имя? Обычно так обозначают только расширение
3. нет вызова этой функции, надеюсь, ты его просто не привёл.
4. Нужно как-то преобразовать np.asarray в строку, чтобы записать, например, через for

В итоге всё должно выглядеть как-то так
Python:
from PIL import Image
import numpy as np
def main():
    path = "C:\\Python\\"
    img = Image.open(path + 'pic.png')
    obj = img.load()

    a = np.asarray(img)
    with open(path + 'a.txt', 'a') as output_file:
        for line in a:
            output_file.write(str(line) + "\n")

main()

Вот что будет лежать в файле a.txt
спасибо за отзыв. замечания правдивы, но проблема у меня не в ошибках кода (это не весь код это я делал вырезку команд из скрипта показать какие функции использую в модуле).
на деле у меня все работает, но на выходе данные обрезаются
вот пример a.txt
[[[237 18 123]
[237 18 123]
[237 18 123]
...,
[237 18 123]
[237 18 123]
[237 18 123]]

[[237 18 123]
[255 18 23]
[255 18 23]
...,
[237 18 123]
[237 18 123]
[237 18 123]]

[[237 18 123]
[237 18 123]
[237 18 123]
...,
[237 18 123]
[237 18 123]
[237 18 123]]

...,
[[237 18 123]
[237 18 123]
[237 18 123]
...,
[237 18 123]
[237 18 123]
[237 18 123]]

[[237 18 123]
[255 18 23]
[255 18 23]
...,
[237 18 123]
[237 18 123]
[237 18 123]]

[[237 18 123]
[237 18 123]
[237 18 123]
...,
[237 18 123]
[237 18 123]
[237 18 123]]]

хотя я делал запись вот так
Python:
a = np.asarray(img)
asa = str (a)
with open('a', 'w',encoding='utf-8') as output_file:
                output_file.write(asa)
может именно в этом и кроется баг?
 

f22

Codeby Academy
Gold Team
05.05.2019
1 922
226
BIT
1 668
спасибо за отзыв. замечания правдивы, но проблема у меня не в ошибках кода (это не весь код это я делал вырезку команд из скрипта показать какие функции использую в модуле).
на деле у меня все работает, но на выходе данные обрезаются
вот пример a.txt
[[[237 18 123]
[237 18 123]
[237 18 123]
...,
[237 18 123]
[237 18 123]
[237 18 123]]

[[237 18 123]
[255 18 23]
[255 18 23]
...,
[237 18 123]
[237 18 123]
[237 18 123]]

[[237 18 123]
[237 18 123]
[237 18 123]
...,
[237 18 123]
[237 18 123]
[237 18 123]]

...,
[[237 18 123]
[237 18 123]
[237 18 123]
...,
[237 18 123]
[237 18 123]
[237 18 123]]

[[237 18 123]
[255 18 23]
[255 18 23]
...,
[237 18 123]
[237 18 123]
[237 18 123]]

[[237 18 123]
[237 18 123]
[237 18 123]
...,
[237 18 123]
[237 18 123]
[237 18 123]]]

хотя я делал запись вот так
Python:
a = np.asarray(img)
asa = str(a)
with open('a', 'w',encoding='utf-8') as output_file:
                output_file.write(asa)
может именно в этом и кроется баг?
Дело в том, что ты объект np.asarray(img) сразу преобразуешь в строку.
Скорее всего он поддерживает этот метод, но как-то криво.
Лучше перебирать его построчно, как список, и также построчно записывать в файл
Python:
a = np.asarray(img)
with open(path + 'a.txt', 'a') as output_file:
    for line in a:
        output_file.write(line + "\n")
 

noted

Green Team
08.12.2019
107
14
BIT
0
Дело в том, что ты объект np.asarray(img) сразу преобразуешь в строку.
Скорее всего он поддерживает этот метод, но как-то криво.
Лучше перебирать его построчно, как список, и также построчно записывать в файл
Python:
a = np.asarray(img)
with open(path + 'a.txt', 'a') as output_file:
    for line in a:
        output_file.write(line + "\n")
yes. it's the answer to my problem! TY!
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!