Help us understand the problem. What is going on with this article?

Pythonのopen()で詰まった話

More than 1 year has passed since last update.

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あんまし関係なかったな...

fukuharataka
本職は、機械屋さんからweb屋さんへ転向しました! でもたまに機械屋さんもやってます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away