web-dev-qa-db-fra.com

PermissionError: [Errno 13] Autorisation refusée: 'emails2 / Train'

J'ai exploré stackoverflow et différents sites Web, mais il semble que je n'ai pas encore trouvé de solution. Mon problème est que j'essaie d'accéder à deux dossiers différents qui contiennent des e-mails "jambon" ou "spam" pour travailler dans un ensemble de données pour la formation du modèle. Je semble continuer à obtenir une erreur d'autorisation et je ne sais pas comment le résoudre via Python ou Windows Explorer. Je voudrais savoir comment le résoudre de plusieurs manières pour mieux comprendre de celui-ci.

Voici le code:

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)

Je comprends que cela pourrait être une erreur d'autorisation Windows, mais je ne l'ai jamais rencontré auparavant.

3
KanyeWestt

Si vous exécutez le fichier python à partir de l'invite de commande. Lorsque vous ouvrez l'invite de commande, cliquez avec le bouton droit et sélectionnez exécuter en tant qu'administrateur.

Si vous utilisez un autre IDE (par exemple spyder pycharm, etc.), essayez également de l'exécuter en tant qu'administrateur.

Assurez-vous également que les fichiers utilisés par le script python ne sont pas accessibles par une autre application.

J'espère que cela t'aides

1
ArunJose_Intel