Чтобы прочитать заголовок (общий заголовок для многих файлов) файла (ов) журнала. класс был создан и вызывает его объект из другого файла. Класс header возвращает словарь значений заголовков.
Как передать весь файл в качестве аргумента классу заголовка из дочернего класса?
Дочерний класс:
class fileLog(object):
def __init__(self):
try:
# File path
filePath = "C:\FileLog1.log"
file = open(filePath, "rb")
with file:
self.fetchHeader(file)
finally:
file.close()
# This method fetches the header information
def getHeader(self, file):
'''
Get header information from header class
'''
header = HeaderInfo(file)
header_dict = header.Fetch_Data()
....
....
Класс информации заголовка:
class HeaderInfo(dict):
def __init__(self, fileName):
header_dict = defaultdict(list)
print(type(fileName))
# self._object = self.file
self._fileName = fileName
file = open(self._fileName, "rb")
self._dict = {}
....
....
def Get_Data(self):
return self._dict
hi = HeaderInfo('**** what to pass here ? ****')
if __name__ == '__main__':
hi.Fetch_Data('** what to pass here ? **')
Я не хочу жестко кодировать имя файла в классе информации заголовка, поскольку несколько файлов могут использовать один и тот же класс, и файл должен передаваться динамически.
Ошибка:
TypeError: init () отсутствует 1 обязательный позиционный аргумент: 'fileName'
Я знаю, что не передаю fileName, но как обработать имя файла в HeaderInfo класс