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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Python

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

Q&A

解決済

3回答

8570閲覧

pythonで作成したexcelファイルの保存先が固定されている

tetsuya7724

総合スコア67

Python

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

0グッド

2クリップ

投稿2021/05/16 09:52

前提・実現したいこと

pythonでexcelを作成しているのですが、excelの保存先が/Users/appleになります。
通常であれば、pythonファイル(以下.py)と同じフォルダに保存されるはずなのですが、.pyをどこに移動させてもexcelの保存先が/Users/appleになります。

vscodeを使ってpythonのコードを書いているのですが、何が原因で保存先が固定されているのかがわかりません。このままで使用してもいいのですが、いちいちexcelファイルを移動させるのも面倒なので統一したいです。

どこを確認したらいいでしょうか。ご教授お願いします。

該当のソースコード

html

1import openpyxl as excel 2 3book = excel.Workbook() 4sheet = book.active 5sheet["A1"] = "こんにちは" 6book.save("test.xlsx") 7 8book = excel.load_workbook("test.xlsx") 9sheet = book.worksheets[0] 10cell = sheet["A1"] 11print(cell.value)

仮想環境は使っていません。
上記でも書きましたが、vscodeを使っています。

macOS Big Sur 11.2.3

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

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

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

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

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

guest

回答3

0

通常であれば、pythonファイル(以下.py)と同じフォルダに保存されるはずなのですが、

そこから間違ってますね。

book.save("test.xlsx")

と、相対パスでファイルを指定した場合は、カレントディレクトリーからの相対パスになります。
カレントディレクトリーが/Users/appleの状態でこのプログラムを実行すれば、"test.xlsx"は、"/Users/apple/test.xlsx"と同じ意味になります。

プログラムのPythonファイルと同じ場所に保存したいのであれば、プログラムのファイルのパスは__file__で得られるので、それのディレクトリ部分をos.path.dirnameで取って、"text.xlsx"os.path.joinすればいいでしょう。

投稿2021/05/16 10:11

otn

総合スコア85901

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

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

0

何が原因で保存先が固定されているのか

何かを出力する時のデフォルトの出力先はカレントディレクトリ(working directory)です
カレントディレクトリの確認の仕方は下記

python

1import os 2print(os.getcwd())

保存先を変えるにはカレントディレクトリを変更するか、フルパスで保存先を指定するかのどちらかです

python

1#カレントディレクトリの変更 2import os 3os.chdir('/tmp/') 4 5#フルパスで保存 6book.save('/tmp/test.xlsx')

投稿2021/05/16 10:10

hentaiman

総合スコア6426

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

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

0

ベストアンサー

VSCodeが原因かもしれませんね。

ターミナルを立ち上げて、該当のpythonスクリプトが置いてあるディレトリ(フォルダのことです)に移動して実行してみましょう。

例えばもし/Users/hoge/test_pythonというディレトリに今回のスクリプトmain.pyがあるのなら、

$ cd /Users/hoge/test_python $ python main.py

これでディレトリのなかにexcelファイルができているでしょうか?

もしできているならスクリプトの中身が原因なのではなくvscode側の設定が影響しているのではないかと思います。

投稿2021/05/16 10:13

digitalhimiko

総合スコア142

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

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

tetsuya7724

2021/05/16 12:58

vscodeで作成したHello.pyをターミナルで実行してみました。 同じフォルダにexcelファイルが作成されました。 ご指摘通りvscodeの設定に原因がありそうです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問