PermissionError: [Errno 13] В доступе отказано: 'emails2 / Train' - PullRequest
1 голос
/ 20 октября 2019

Я изучал stackoverflow и различные веб-сайты, но, похоже, пока не нашел решения. Моя проблема заключается в том, что я пытаюсь получить доступ к двум разным папкам, которые содержат электронные письма типа "ветчина" или "спам", чтобы использовать их в наборе данных для обучения модели. Кажется, я получаю сообщение об ошибке разрешения, и я не уверен, как ее решить с помощью Python или Windows Explorer. Я хотел бы знать, как решить ее несколькими способами, чтобы лучше понять ее.

Вот код:

ham = 'ham'
spam = 'spam'
data = 'emails2'
hamfiles = []
spamfiles = []

'''Searching File Path'''
print('# MESSAGE: Finding for files ----------------------------------------------------------------------------------')
for subdir, folders, files in os.walk(data):
    if subdir.__contains__(ham):
        # print(subdir)
        for file in files:
            # print(os.path.join(subdir, file))
            hamfiles.append(os.path.join(subdir, file))
    else:
        for file in files:
            # print(os.path.join(subdir, file))
            spamfiles.append(os.path.join(subdir, file))

import glob

X_file = []
y_class = []

eof = [('eof')]

for hamfile in hamfiles:
    # print(hamfile)
    files = glob.glob(hamfile)
    for file in files:
        # print(file)
        h = open(file, encoding='UTF8', errors='replace')
        buffer = h.read()

        '''Tokenize'''
        token = nltk.word_tokenize(buffer)
        '''Part Of Speech Tagging'''
        posTag = nltk.pos_tag(token)
        '''Append to Array'''
        for (word, tag) in posTag:
            X_file.append(word)
            y_class.append('ham')


for spamfile in spamfiles:
    # print(spamfile)
    files = glob.glob(spamfile)
    for file in files:
        # print(file)
        s = open(file, encoding='UTF8', errors='replace')
        buffer = s.read()

        '''Tokenize'''
        token = nltk.word_tokenize(buffer)
        '''Part Of Speech Tagging'''
        posTag = nltk.pos_tag(token)
        '''Append to Array'''
        for (word, tag) in posTag:
            X_file.append(word)
            y_class.append('spam')

print('# MESSAGE: Print X_ham ----------------------------------------------------------------------------------------')
print(X_file)
h.close()

def create_lexicon(X_file,y_class):

    lexicon = []
    with open(X_file,'r+') as f:
        contents = f.readlines()
        for l in contents[:hm_lines]:
            all_words = word_tokenize(l)
            lexicon += list(all_words)

    with open(y_class,'r+') as f:
        contents = f.readlines()
        for l in contents[:hm_lines]:
            all_words = word_tokenize(l)
            lexicon += list(all_words)

Я понимаю, что это может быть ошибка разрешения Windows, ноЯ никогда не сталкивался с этим раньше.

1 Ответ

0 голосов
/ 20 октября 2019

Если вы запускаете файл python из командной строки. При открытии командной строки щелкните правой кнопкой мыши и выберите «Запуск от имени администратора».

Если вы используете любую другую IDE (например, spyder pycharm и т. Д.), Попробуйте запустить ее от имени администратора.

Также убедитесь, что файлы, используемые скриптом python, не доступны для другого пользователя. применение.

Надеюсь, это поможет

...