Я создал такое дерево каталогов:
.
├── images
│ ├── 1.jpg
│ ├── 2.jpg
│ ├── 3.jpg
│ ├── 4.jpg
│ └── 5.jpg
└── labels
├── 1.txt
├── 2.txt
└── 5.txt
Самый простой способ сделать это:
from os import listdir, remove
labels = listdir('labels')
images = listdir('images')
for image in images:
if '{}.{}'.format(image.split('.')[0], 'txt') not in labels:
print('Going to remove %s' % image)
remove('images/%s' % image)
тл;др; вы должны использовать файл, который находится только в оперативной памяти
, как и в Linux, — это файлы, возвращаемые memfd_create(2)
или при открытии файла из файловой системы tmpfs
[1].
В этом случае память будет поддерживаться свопом вместо обычного файла или устройства --, если какой-либо своп настроен. Имейте в виду, что если файл большой, это создаст нагрузку на вашу систему и серьезно снизит ее производительность без каких-либо преимуществ.
NB :Если вы обеспокоены тем, что ваши «секреты» могут быть непреднамеренно записаны в постоянное хранилище, лучше узнайте, какие решения для зашифрованного хранения существуют для вашей системы.
[1] shm_open(3)
реализуется в Linux простым открытием файла на tmpfs, смонтированном на /dev/shm
.