В эти выходные я обновился до Mojave 10.14. MacOS представила новые функции безопасности в этом выпуске Mojave 10.14. Одна функция определяет приложения, пытающиеся копировать, изменять или использовать определенные файлы и службы. Умно сделано Apple, но я считаю, что это дает мне ошибку. Мой скрипт python извлекает почтовые вложения, отправленные мне из надежного источника, и анализирует данные во вложениях для дальнейшей обработки. Я использовал решение RichieHindle для немедленного поиска подкаталогов:
import os
def get_immediate_subdirectories(a_dir):
return [name for name in os.listdir('/Users/userx/Library/Mail')
if os.path.isdir(os.path.join(a_dir, name))]
Прекрасно работал в выпуске High Sierra. По-прежнему отлично работает с другими каталогами. Однако с этим кодом я СЕЙЧАС получаю ошибку как в Терминале, так и в Pycharm (сначала предполагая, что Терминал мог быть авторизован).
OSError: [Errno 1] Operation not permitted: '/Users/userx/Library/Mail'
Я предполагаю, что это результат новых функций безопасности Apple. Я могу изменить разрешения на совместное использование в подкаталоге Mail, используя «показать информацию» после щелчка правой кнопкой мыши по каталогу Mail. Это бесполезно. Системные настройки «Безопасность и конфиденциальность» тоже не приносят утешения.
Вопрос 1: Считается ли мое предположение правильным?
Вопрос 2: Если да: что нужно сделать или изменить для доступа к каталогу Mail и перечисления его подкаталогов и содержимого в выпуске Mojave 10.14?