Модули и функции в Python
У меня есть код который преобразовывает матрицу из csv-файла в матрицу состоящую из нулей и сохраняет её в новый csv-файл , мне нужно чтобы код, производящий преобразования матрицы был выделен в отдельные функции, принимающие исходную матрицу в качестве аргумента и возвращающий преобразованную матрицу через ключевое слово return. Каждая функция должна так же находиться в собственном модуле. Не понимаю, что именно и куда надо добавить, помогите пожалуйста
import csv
m = [[int(token) for token in line.split()] for line in open('tekst.csv')]
mz = [[0] * len(row) for row in m]
with open('resultat_1.csv', 'w') as f:
for row in mz:
print(' '.join(map(repr, row)), file=f)
from matplotlib.pyplot import matshow, show
matshow(mz)
show()
Ответы (1 шт):
Итого вам видимо нужно сделать три файла. 1й файл называете matrixfile.py Вот его содержимое:
import csv
def GetMatrix(filename):
return [[int(token) for token in line.split()] for line in open(filename)]
def SaveMatrix(mt, filename):
with open(filename, 'w') as f:
for row in mt:
print(' '.join(map(repr, row)), file=f)
2й файл называете matrixziro.py Вот его содержимое:
def GetZiroMatrix(mt):
return [[0] * len(row) for row in mt]
Ну и 3й файл называете как угодно, но главное что бы расширение было .py Вот его содержимое:
import matrixfile as mf
import matrixziro as mz
from matplotlib.pyplot import matshow, show
mzr = mz.GetZiroMatrix(mf.GetMatrix('tekst.csv'))
mf.SaveMatrix(mzr, 'resultat_1.csv')
matshow(mzr)
show()
Всё это должно быть в одной папке. Первые два файла - модули, в них функции. Третий файл - главный, в нем сама программа, вызывающая функции из модулей.