LINUX.ORG.RU

История изменений

Исправление thunar, (текущая версия) :

Как-то так

class fileobj(object):
	def __init__(self, fname):
		self.a = ...
		self.b = ...
	def __getitem__(self, i):
		lf = self.b[i]['offset']
		rt = self.b[i]['length']+lf
		return self.a[lf:rt]
же. Аналогично для имён файлов можно, например через getattr, ну или в гетитем проверять строка или число. https://www.geeksforgeeks.org/__getitem__-in-python/ https://medium.com/@satishgoda/python-attribute-access-using-getattr-and-geta...

Красивей, наверное, на старте прочитать все заголовки через struct и заmmapать в self.словарь все смещения по файлу, и к нему уже обращаться, тем более что у вас в файлах бинарные данные.

Исправление thunar, :

Как-то так

class fileobj(object):
	def __init__(self, fname):
		self.a = ...
		self.b = ...
	def __getitem__(self, i):
		lf = self.b[i]['offset']
		rt = self.b[i]['length']+lf
		return self.a[lf:rt]
же. Аналогично для имён файлов можно, например через getattr, ну или в гетитем проверять строка или число. https://www.geeksforgeeks.org/__getitem__-in-python/ https://medium.com/@satishgoda/python-attribute-access-using-getattr-and-geta...

Красивей, наверное, на старте прочитать все заголовки через struct и заmmapать в self.словарь все смещения по файлу, и к нему уже обращаться.

Исправление thunar, :

Как-то так

class fileobj(object):
	def __init__(self, fname):
		self.a = ...
		self.b = ...
	def __getitem__(self, i):
		lf = self.b[i]['offset']
		rt = self.b[i]['length']+lf
		return self.a[lf:rt]
же. Аналогично для имён файлов можно, например через getattr, ну или в гетитем проверять строка или число. https://www.geeksforgeeks.org/__getitem__-in-python/ https://medium.com/@satishgoda/python-attribute-access-using-getattr-and-geta...

Красивей, наверное, на старте прочитать все заголовки через struct и заmmapать в self.словарь все смещения по файлу.

Исправление thunar, :

Как-то так

class fileobj(object):
	def __init__(self, fname):
		self.a = ...
		self.b = ...
	def __getitem__(self, i):
		lf = self.b[i]['offset']
		rt = self.b[i]['length']+lf
		return self.a[lf:rt]
же. Аналогично для имён файлов можно, например через getattr, ну или в гетитем проверять строка или число. https://www.geeksforgeeks.org/__getitem__-in-python/ https://medium.com/@satishgoda/python-attribute-access-using-getattr-and-geta...

Красивей, наверное, на старте прочитать все заголовки через struct и за mmapать в словарь все смещения по файлу.

Исправление thunar, :

Как-то так

class fileobj(object):
	def __init__(self, fname):
		self.a = ...
		self.b = ...
	def __getitem__(self, i):
		lf = self.b[i]['offset']
		rt = self.b[i]['length']+lf
		return self.a[lf:rt]
же. Аналогично для имён файлов можно, например через getattr, ну или в гетитем проверять строка или число. https://www.geeksforgeeks.org/__getitem__-in-python/ https://medium.com/@satishgoda/python-attribute-access-using-getattr-and-geta...

Исправление thunar, :

Как-то так

class fileobj(object):
	def __init__(self, fname):
		self.a = ...
		self.b = ...
	def __getitem__(self, i):
		lf = self.b[i]['offset']
		rt = self.b[i]['length']+lf
		return self.a[lf:rt]
же. Аналогично для имён файлов можно, например через getattr, ну или в гетитем проверять строка или число. https://www.geeksforgeeks.org/__getitem__-in-python/ https://medium.com/@satishgoda/python-attribute-access-using-getattr-and-geta...

mode='r'

Алсо, не 'rb'?

Исправление thunar, :

Как-то так

class fileobj(object):
	def __init__(self, fname):
		self.a = ...
		self.b = ...
	def __getitem__(self, i):
		lf = self.b[i]['offset']
		rt = self.b[i]['length']+lf
		return self.a[lf:rt]
же. Аналогично для имён файлов можно, например через getattr, ну или в гетитем проверять строка или число. https://www.geeksforgeeks.org/__getitem__-in-python/ https://medium.com/@satishgoda/python-attribute-access-using-getattr-and-geta...

Исправление thunar, :

Как-то так

class fileobj(object):
	def __init__(self, fname):
		self.a = ...
		self.b = ...
	def __getitem__(self, i):
		lf = self.b[i]['offset']
		rt = self.b[i]['length']+lf
		return self.a[lf:rt]
же, аналогично для имён файлов можно https://www.geeksforgeeks.org/__getitem__-in-python/ https://medium.com/@satishgoda/python-attribute-access-using-getattr-and-geta...

Исправление thunar, :

Как-то так

class fileobj(object):
	def __init__(self, fname):
		self.a = ...
		self.b = ...
	def __getitem__(self, i):
		lf = self.b[i]['offset']
		rt = self.b[i]['length']+lf
		return self.a[lf:rt]
же

Исходная версия thunar, :

Как-то так

class AttributeDict(object):
	def __init__(self, fname):
		self.a = ...
		self.b = ...
	def __getitem__(self, i):
		lf = self.b[i]['offset']
		rt = self.b[i]['length']+lf
		return self.a[lf:rt]
же