LoginSignup
9
5

More than 1 year has passed since last update.

Pythonのopen()で詰まった話

Last updated at Posted at 2019-06-15

pythonのopenファイルで詰まった話

やりたかったこと

csvファイルに2019/06/11みたいな名前のファイルを作成しようとした。

やったこと

1. まずは普通に書いてみた

test1.py
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メソッドの第二引数をwxなどを試してみた。

test2.py
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. エラーメッセージをもう一回読んでみた

結果

ファイル名かディレクトリの区別がついてない説

ファイル名を変えてみた

test3.py
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では以下の文字が使えないらしいですね

\  円記号
/ スラッシュ
: コロン
*  アスタリスク
?  クエスチョンマーク、疑問符
"  ダブルクォーテーション
<>  不等号
|  縦棒

dynabook公式: ファイルやフォルダー名に使用できない文字<Windows 10>

9
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
5