Задача для зачета

Программе дается текстовый файл с прямоугольным изображением типа такого:

...####...####
...#..#...#..#
...#..#...####
...#..###.....
...#....#.....
...#....#.....
..##..o.#####.
..#.........#.
..###########.

Здесь как будто нарисована карта со стенками (символ #) и с пустым пространством (символ .) Кроме того, на карте отмечен символ o.

Создайте класс Map, который позволяет работать с такой картой. Он должен прочитать ее в виде списка строк, где каждая строка — это список символов. Т.е. что-то типа [['.', '.', '.', '#', ..], [...], ...]

Должен работать следующий код:

m = Map('a.txt')  # чтение файла
m.print()  # печать карты на экран, карта должна выглядеть как выше, без скобок и запятых
print(m.countWalls())  # считает сколько стенок на карте
print(m.findPoint())  # возвращает кортеж из двух чисел — координат символа 'o'
m2 = m.rotate()  # поворачивает карту на 90 градусов по часовой стрелке
m2.print()  # смотрим результат 
m.print()  # а старая карта не изменилась