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

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

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

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

Q&A

解決済

1回答

5366閲覧

「Pythonを動かしている環境と同じディレクトリの中」とは何処かを把握したい

D_I

総合スコア5

Python

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

0グッド

0クリップ

投稿2020/03/03 02:50

pythonを使ってexcelを操作してみたいです

同じ質問を下記の方がしております。
https://teratail.com/questions/166261
私の理解不足でまだエラーが発生しております

下記はすでに確認しました
import os
os.getcwd()
実行すると
C:\Users\ito\Anaconda3\python.exe C:/Users/ito/PycharmProjects/test02/openpyxl01.py
となり、「C:/Users/ito/PycharmProjects/test02/openpyxl01.py」の「C:\Users\ito\PycharmProjects\test02」
までファイルを移動しましたが、下記のようにエラーが出てしまいます。

「C:\Users\ito\Anaconda3\python.exe」この部分はどう理解すればよいのでしょうか
また「test02」の場所ではなく「中」に入れるの意味がよくわかりません。

発生している問題・エラーメッセージ

Traceback (most recent call last):
File "C:/Users/ito/PycharmProjects/test02/openpyxl01.py", line 4, in <module>
wb = openpyxl.load_workbook('path/to/your/test.xlsx')
File "C:\Users\ito\Anaconda3\lib\site-packages\openpyxl\reader\excel.py", line 311, in load_workbook
data_only, keep_links)
File "C:\Users\ito\Anaconda3\lib\site-packages\openpyxl\reader\excel.py", line 126, in init
self.archive = _validate_archive(fn)
File "C:\Users\ito\Anaconda3\lib\site-packages\openpyxl\reader\excel.py", line 98, in _validate_archive
archive = ZipFile(filename, 'r')
File "C:\Users\ito\Anaconda3\lib\zipfile.py", line 1204, in init
self.fp = io.open(file, filemode)
FileNotFoundError: [Errno 2] No such file or directory: 'path/to/your/test.xlsx'

Process finished with exit code 0

該当のソースコード

import openpyxl

wb = openpyxl.load_workbook('path/to/your/test.xlsx')

試したこと

参考にしているサイト曰く
ダウンロードしたExcelファイルを、Pythonを動かしている環境と同じディレクトリに移動(コピー)するとあったので
import os
os.getcwd()
と実行すると
C:\Users\ito\Anaconda3\python.exe C:/Users/ito/PycharmProjects/test02/openpyxl01.py

「C:\Users\ito\Anaconda3\python.exe」のディレクトリに移動させて実行、結果変わりなし。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

technocore

2020/03/03 02:58

>wb = openpyxl.load_workbook('path/to/your/test.xlsx') 本当にこんなふうに書いて実行しているのですか? test.xlsxへのパスを記述するのですよ。(絶対パスあるいは相対パスで)
quickquip

2020/03/03 03:09

import os os.getcwd() 実行すると C:\Users\ito\Anaconda3\python.exe C:/Users/ito/PycharmProjects/test02/openpyxl01.py これはありえないです。別の何かの結果を見てしまっています。 元の質問はPythonの対話環境(REPL)を使っているから os.getcwd() でいいですが、質問者さんの場合は print(os.getcwd()) してください。 あるいは誤読をしないよう print('os.getcwd()', os.getcwd()) などとした方がいいかも。
D_I

2020/03/03 03:12

すみません、再度確認いたします。
hayataka2049

2020/03/03 03:12

コードやエラーはコードブロックに入れるように質問を編集してください。 ``` ここにコードを書きます ``` のように```の行で囲うことで綺麗に表示させることが可能です。https://teratail.com/help/question-tips も参考に
guest

回答1

0

ベストアンサー

まず、コードにpath/to/your/test.xlsxとあるのはつまり「あなたの環境のもとで適切なパスに書き換えてください!」という意味なので、このまま動かしたら絶対に成功しません。
(これも相対パスになるので、カレントディレクトリにあるpathフォルダの中のtoフォルダの中のyourフォルダの中にtest.xlsxがあれば成功するかもしれませんが)

python

1wb = openpyxl.load_workbook('test.xlsx') 2

に直してください。


import os

os.getcwd()
実行すると
C:\Users\ito\Anaconda3\python.exe C:/Users/ito/PycharmProjects/test02/openpyxl01.py
となり、

ならないはずです。なったなら、なにか違うものと勘違いしています。どんな環境で実行しているのかはわかりませんが、おそらくプログラムの実行に用いられるコマンドを印字するような機能があるもので動かしていると思われます。

python

1mport os 2 3print("次の行にカレントディレクトリが表示されます") 4print(os.getcwd())

としてみてください。「次の行に~」の下の行に出てきたところが、読み込みたいファイルを置くべきところです。


python.exeの場所はどうでもいいです。pythonの環境は確かにそこに置いてあるかもしれませんが、ファイルを開くときのパスとは関係ありません。

処理系のシステムが鎮座するディレクトリなので、むしろここに自分のファイルを置いたりはしないでください。最悪の場合、操作を誤ったりしてpythonが壊れます。

投稿2020/03/03 03:12

hayataka2049

総合スコア30933

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問