Я пытаюсь получить MIME-тип, прочитать и проанализировать некоторые архивные файлы, используя следующий код:
archive_file.tar.gz ---> file.csv, file. json, file.xlsx et c.
def parse_tar_gzip(element):
from my_lib import parse_file
from my_lib import NestedArchives
try:
tar = tarfile.open(fileobj=element, mode="r")
except tarfile.ReadError:
raise NestedArchives(element)
else:
for mem in tar.getmembers():
if mem.isfile():
my_mems = mem.name.split("/")[-1]
if not my_mems.startswith("."):
my_file = tar.extractfile(mem)
# my_mime = mimetypes.guess_type(my_file)
print(my_file)
# yield "", parse_file(my_file)
with open('/Users/my_name/Downloads/archive_file.tar.gz', 'rb') as my_files:
blabla = parse_tar_gzip(my_files)
print(blabla)
Проблема в том, что my_file
возвращается как ExFileObject
с именем archive_file.tar.gz
вместо имени файлов внутри архив (например: file.json
или file.xlsx
), как показано ниже:
<ExFileObject name='/Users/my_name/Downloads/archive_file.tar.gz'>
<ExFileObject name='/Users/my_name/Downloads/archive_file.tar.gz'>
<ExFileObject name='/Users/my_name/Downloads/archive_file.tar.gz'>
<ExFileObject name='/Users/my_name/Downloads/archive_file.tar.gz'>
Разве extractfile
не должен возвращать имена файлов внутри архива? Это очень странно, потому что когда я использовал python2 .x, там были имена файлов ...