web-dev-qa-db-ja.com

PermissionError:[Errno 13]権限が拒否されました: 'emails2 / Train'

私は、stackoverflowやさまざまなWebサイトを探し回りましたが、まだ解決策を見つけていないようです。私の問題は、「ハム」または「スパム」の電子メールを含む2つの異なるフォルダーにアクセスして、モデルのトレーニング用のデータセットを操作しようとしていることです。アクセス許可エラーが発生し続けているようですが、PythonまたはWindowsエクスプローラ)を使用して解決する方法がわかりません。理解を深めるために複数の方法で解決する方法を知りたいのですがそれの。

これがコードです:

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の権限エラーの可能性があることは理解していますが、これに遭遇したことはありません。

3
KanyeWestt

コマンドプロンプトからpythonファイルを実行している場合。コマンドプロンプトを開いたら、右クリックして[管理者として実行]を選択します。

他のIDE(例:spyder pycharmなど)を使用している場合も、管理者としてこれを実行してみてください。

また、pythonスクリプトによって使用されるファイルが別のアプリケーションによってアクセスされていないことを確認してください。

お役に立てれば

1
ArunJose_Intel