Я пытаюсь прочитать файл tar, идентифицировать некоторые файлы, прочитать их, а затем записать новый файл в тот же файл с помощью Python. Похоже, extractfile () разрешен только если режим "r". Это тот случай? Есть ли способ извлекать файлы из tar в памяти, а также добавлять новые файлы в tar одновременно? Пример кода ниже:
def genEntry(tar, tarinfo, source):
heading = re.compile(r'#+(\s+)?')
f = tar.extractfile(tarinfo)
f.seek(0)
while True:
line = f.readline().decode()
print(line)
if not line:
break
print(line)
if heading.match(line):
title = heading.sub('',line).replace('\n','')
return[tarinfo.name.replace(source,'.'), title]
return [tarinfo.name.replace(source,'.'), tarinfo.name.replace(source,'')]
with tarfile.open(args.source, mode='a') as tar:
source = 'somepath'
subDir = 'someSubDir'
path = '/'.join((source, subDir))
if tar.getmember(path):
pathre = re.compile(r'{}\/.+?\/readme\.md'.format(re.escape(path)), re.IGNORECASE)
for tarinfo in tar.getmembers():
if re.search(pathre, tarinfo.name):
genEntry(tar, tarinfo, source)
...
Это приведет к следующей ошибке:
OSError: неправильная операция для режима 'a'