Это мой первый пост, поэтому заранее благодарю за несомненно полезный совет.
Я запускаю скрипт на python, для которого требуются файлы .tif в качестве входных данных. Эти файлы в настоящее время хранятся как .7z. У меня недостаточно места на жестком диске, чтобы разархивировать все файлы одновременно. Поэтому я хотел бы открыть один файл из .7z, запустить скрипт python, удалить .tif, а затем повторить в цикле. Тем не менее, я не могу заставить распаковку работать только для одного файла. Либо он вообще не работает, либо извлекает весь архив.
###Get a list of all the files in the archive
archive7z = path+file1
p = Popen(['7z', 'l', archive7z, '>> list.txt'], stdin=PIPE, stdout=PIPE, stderr=PIPE)
output, err = p.communicate(b"input data that is passed to subprocess' stdin")
rc = p.returncode
data = pd.read_fwf('/home/user/list.txt', skiprows= 18, sep='\s+')
my_list = data["Name"].values
ml= my_list.tolist()
#loop through list of files de-compressing one at a time
for item in ml:
if item.endswith('.tif'):
unzipper = item
os.system('/home/ecf31/p7zip/7z e' + ' ' + '-i@'+unzipper + '_' archive7z)
rest of script doing stuff with the tiff
os.remove(.tif)
#on to the next file