pythonのopenファイルで詰まった話
やりたかったこと
csvファイルに2019/06/11
みたいな名前のファイルを作成しようとした。
やったこと
1. まずは普通に書いてみた
file_name = dt.now().strftime('%Y/%m/%d') + '.csv'
csv_file = open(file_name, 'a', encoding='utf-8')
結果
FileNotFoundError: [Errno 2] No such file or directory: '2019/06/11.csv'
'2019/06/11.csv'というファイルかディレクトリが見つかりません
2. openメソッドの第二引数をw
やx
などを試してみた。
file_name = dt.now().strftime('%Y/%m/%d') + '.csv'
csv_file = open(file_name, 'w', encoding='utf-8')
結果
FileNotFoundError: [Errno 2] No such file or directory: '2019/06/11.csv'
3. chmodで権限変えてみた
comod 777 pythonderectory
結果
FileNotFoundError: [Errno 2] No such file or directory: '2019/06/11.csv'
4. エラーメッセージをもう一回読んでみた
結果
ファイル名かディレクトリの区別がついてない説
ファイル名を変えてみた
file_name = dt.now().strftime('%Y%m%d') + '.csv'
csv_file = open(file_name, 'w', encoding='utf-8')
結果
$ ls
20190611.csv test.py
できてた
結論
ファイル名に「/」を使うのはやめましょう
ファイル名にすると読み込めない文字がいくつかあって、今回の「/」はがっつり使用不可でした。
他にも「.」「"」「\」「[」「]」「:」「;」「|」「=」「,」とかも使用するのはやめましょうというお話でした。
環境はMacOSですが、他のOSどうなんでしょう。
今後
今後は、pandasを使ってcsvファイルを使っていきます。
反省
今回pythonあんまし関係なかったな...
追記
2022/07/12追記
dynabookの公式サイトでwindows10で使えない文字がありました!
windows10では以下の文字が使えないらしいですね
\ | 円記号 |
/ | スラッシュ |
: | コロン |
* | アスタリスク |
? | クエスチョンマーク、疑問符 |
" | ダブルクォーテーション |
<> | 不等号 |
| | 縦棒 |