0
0 комментариев

python 3.6, linux,

Здравствуй! Я написал программу, которая заменяет изображения из одной папки в другую, переименовывает их и распределяет по нужным папкам. На тестовой папке, которая к root не привязана программа работает, но, если нужно переместить их в нужную мне аудиторию, которая привязана к root, ничего не получается. Если я просто запускаю программу через $ python, система запрещает доступ (ну оно и логично); если же я запускаю через $ sudo python, программа перестает видеть относительные пути используя библиотеку os и выдает ошибки типа TypeError: listdir() takes exactly 1 argument (0 given). Нужно как-то запустить программу через root. Всё, что нашел в интеренетах, не помогло.

И да, если попробовать ввести абсолютные пути в os.listdir() и так далее, выдаёт ошибку, что в пакете os нет replace.

[apcode language=»python»]

import os
 os.chdir('/home/andrew/Pictures/Icons/new_folders')
translate = {'folder': 'folder',
             'folder_bookmark': 'user-bookmarks',
             'folder_doc': 'folder-documents',
             'folder_down': 'folder-download',
             'folder_home': 'user-home',
             'folder_music': 'folder-music',
             'folder_network': 'gtk-network',
             'folder_picture': 'folder-pictures',
             'folder_recent': 'folder-recent',
             'folder_saved_search': 'folder-saved-search',
             'folder_share': 'folder-publicshare',
             'folder_templates': 'folder-templates',
             'folder_video': 'folder-videos',
             'folder_workgroup': 'network-workgroup'}
 for folder in os.listdir():
    if 'Folder' in folder:
        os.chdir('/home/andrew/Pictures/Icons/new_folders/' + folder)
        for picture in os.listdir():
            for directory in os.listdir('/usr/share/icons/Iso/places'):
                for key in translate:
                    if (key + directory + '.png') in picture:
                        os.replace(os.getcwd() + '/' + picture,
                                '/usr/share/icons/Iso/places/'
                                + directory + '/' + translate[key] + '.png')

[/apcode]

Asked question
Добавить комментарий