回答編集履歴
2
test
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
「子供/小・中学生のプログラミング教室|スタープログラミングスクール.jpg」というファイル名を指定した結果
|
12
12
|
|
13
|
-
「./プログラミング/子供/」というディレクトリ下に新規ファイルを作成しようとしのが原因です。
|
13
|
+
「./プログラミング/子供/」というディレクトリ下に新規ファイルを作成しようとしたのがFileNotFoundErrorの原因です。
|
14
14
|
|
15
15
|
|
16
16
|
|
1
修正
test
CHANGED
@@ -1,12 +1,24 @@
|
|
1
|
+
open()でファイルを新規作成する場合、ディレクトリがあらかじめ作成されている必要がありますが、
|
2
|
+
|
1
|
-
|
3
|
+
ファイル名に「/」や「\」等のパス区切り文字列が含まれていると、その部分以下が子ディレクトリと認識され、
|
4
|
+
|
5
|
+
そのディレクトリが存在しない場合にFileNotFoundErrorが発生します。
|
2
6
|
|
3
7
|
|
4
8
|
|
9
|
+
上記では、「プログラミング」というディレクトリしか存在しない(その下の「子供」というディレクトリが存在しない)にもかかわらず
|
10
|
+
|
5
|
-
|
11
|
+
「子供/小・中学生のプログラミング教室|スタープログラミングスクール.jpg」というファイル名を指定した結果
|
12
|
+
|
13
|
+
「./プログラミング/子供/」というディレクトリ下に新規ファイルを作成しようとしのが原因です。
|
6
14
|
|
7
15
|
|
8
16
|
|
17
|
+
その他、区切り文字以外にも、ファイル名に使用できない文字列があると他のエラーが発生することがあります。
|
18
|
+
|
19
|
+
|
20
|
+
|
9
|
-
下記のように、 re.subを使って、ファイル名からエラーの原因となる文字を削除するように
|
21
|
+
したがって、下記のように、 re.subを使って、ファイル名からエラーの原因となる文字を削除するようにするとうまく行くと思います。
|
10
22
|
|
11
23
|
```
|
12
24
|
|