質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1522閲覧

Permission deniedについて

skjka

総合スコア1

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/10/26 22:19

編集2020/10/27 16:44

前提・実現したいこと

リンク内容
こちらを参考にプログラムを作っていたのですが、Permission deniedというエラーが発生し解決できません。
ここに質問の内容を詳しく書いてください。

発生している問題・エラーメッセージ

PermissionError Traceback (most recent call last) <ipython-input-12-093ab5cbb48a> in <module> 50 train = allfiles[0:th] 51 test = allfiles[th:] ---> 52 X_train, y_train = make_sample(train) 53 X_test, y_test = make_sample(test) 54 xy = (X_train, X_test, y_train, y_test) <ipython-input-12-093ab5cbb48a> in make_sample(files) 23 Y = [] 24 for cat, fname in files: ---> 25 add_sample(cat, fname) 26 return np.array(X), np.array(Y) 27 <ipython-input-12-093ab5cbb48a> in add_sample(cat, fname) 28 #渡された画像データを読み込んでXに格納し、また、画像データに対応するcategoriesのidxをY格納する関数 29 def add_sample(cat, fname): ---> 30 img = Image.open(fname) 31 img = img.convert("RGB") 32 img = img.resize((150, 150)) c:\users\sern3\appdata\local\programs\python\python36\lib\site-packages\PIL\Image.py in open(fp, mode) 2876 2877 if filename: -> 2878 fp = builtins.open(filename, "rb") 2879 exclusive_fp = True 2880 PermissionError: [Errno 13] Permission denied: 'C:\Users\sern3\Desktop\petgazou\お茶'

該当のソースコード

python

1#ラベリングによる学習/検証データの準備 2 3from PIL import Image 4import os, glob 5import numpy as np 6import random, math 7 8#画像が保存されているルートディレクトリのパス 9root_dir = r"C:\Users\sern3\Desktop\petgazou" 10# 商品名 11categories = ["お茶","コーラ","水","紅茶", 12 "スポーツドリンク"] 13 14# 画像データ用配列 15X = [] 16# ラベルデータ用配列 17Y = [] 18 19#画像データごとにadd_sample()を呼び出し、X,Yの配列を返す関数 20def make_sample(files): 21 global X, Y 22 X = [] 23 Y = [] 24 for cat, fname in files: 25 add_sample(cat, fname) 26 return np.array(X), np.array(Y) 27 28#渡された画像データを読み込んでXに格納し、また、画像データに対応するcategoriesのidxをY格納する関数 29def add_sample(cat, fname): 30 img = Image.open(fname) 31 img = img.convert("RGB") 32 img = img.resize((150, 150)) 33 data = np.asarray(img) 34 X.append(data) 35 Y.append(cat) 36 37#全データ格納用配列 38allfiles = [] 39 40#カテゴリ配列の各値と、それに対応するidxを認識し、全データをallfilesにまとめる 41for idx, cat in enumerate(categories): 42 image_dir = root_dir + "\" + cat 43 files = glob.glob(image_dir) 44 for f in files: 45 allfiles.append((idx, f)) 46 47#シャッフル後、学習データと検証データに分ける 48random.shuffle(allfiles) 49th = math.floor(len(allfiles) * 0.8) 50train = allfiles[0:th] 51test = allfiles[th:] 52X_train, y_train = make_sample(train) 53X_test, y_test = make_sample(test) 54xy = (X_train, X_test, y_train, y_test) 55#データを保存する(データの名前を「pet_data.npy」としている) 56np.save(r"C:\Users\sern3\Desktop\pet_data.npy", xy)

試したこと

ルートディレクトリの確認
ファイルが読み取り専用になっているか確認

補足情報(FW/ツールのバージョンなど)

windows
python3.6

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2020/10/26 22:23

エラーはプログラムのどこで発生したのですか?
quickquip

2020/10/27 00:35

tracebackがありませんか?
skjka

2020/10/27 16:44

エラーメッセージ修正いたしました。
guest

回答2

0

ベストアンサー

python

1glob.glob(image_dir)

windowsではフォルダを開こうとするとPermission Errorがでるようです。
ファイル名を指定してみてはいかがでしょうか。

試してはいませんが、このように書いたら開けると書いてある記事がありました。

glob.glob(image_dir + '\*')

参考URL1
https://stackoverflow.com/questions/36177183/python-errno13-permission-denied

参考URL2
https://www.haya-programming.com/entry/2019/03/04/132520

投稿2020/10/27 12:55

BTB

総合スコア136

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

skjka

2020/10/27 16:47

こちらで解決しました! ありがとうございます。
guest

0

C:\Users\sern3\Desktop\petgazou\お茶 というディレクトリが存在しないかアクセス権限がないのでは?

投稿2020/10/27 00:39

aachyee

総合スコア114

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問