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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

2568閲覧

Python3系で同ディレクトリ内の別ファイルから自作関数をimportしたい

amaturePy

総合スコア131

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/05/02 00:23

編集2020/05/02 00:28

-project
|-function.ipynb
|-csv_data.ipynb
エディターはjupyter notebookを使用しております。
上記同階層ディレクトリ上にあるcsv_data.pyからfunction.py内の関数をimportしたいです。
現状出ているエラーが「ModuleNotFoundError: No module named 'function'」になります。
初歩的な質問かもしれないですが、よろしくお願いします。
【試した表記】

from function import _load_file, _replace, _id_message, _id_choice, _id_seq, _dictionary, _converter
csv_data.py 【一部抜粋】 import codecs, import csv, import re, import numpy as np, import function
function.py 【一部抜粋】 import codecs import csv #################################### def _load_file(file0,file1): f0 = open(file0, "r", encoding="utf-8", errors="", newline="") f1 = open(file1, "r", encoding="utf-8", errors="", newline="") fr0 = csv.reader(f0, delimiter=",", doublequote=True, lineterminator="\r\n", quotechar='"', skipinitialspace=True) fr1 = csv.reader(f1, delimiter=",", doublequote=True, lineterminator="\r\n", quotechar='"', skipinitialspace=True) return f0, f1, fr0, fr1 #################################### def _replace(x): y = x.replace("\n", " ") y = y.replace("\r", " ") y = y.replace("\t", " ") # error when input data have tabs y = y.replace("\v", " ") # vertical tab y = y.replace('"', ' ') return y

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

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

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

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

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

ForestSeo

2020/05/02 00:47

見たところいけそうなんですが。 間違っていたらすみません
amaturePy

2020/05/02 03:09

はい。。。 どうしても上記のエラーが出ますね。
meg_

2020/05/02 03:17

同一ディレクトリにfunction.ipynbとcsv_data.ipynbとcsv_data.pyとfunction.pyが存在している、という状態ですか?
meg_

2020/05/02 03:20

Pythonのバージョンは何ですか?
amaturePy

2020/05/02 04:26

失礼しました。 両ファイルとも.py→.ipynbになります。 下のteamiklさんのアドバイス通りに通常のpyファイルで無事に目的通りのコードが実行できました。
guest

回答1

0

ベストアンサー

念の為確認ですが、ソース中にはファイル名が function.py とありますが、
実際は function.ipynb ですよね? ノートのimport にのみ言及します。

ノート (.ipynb) を読み込む方法はありますが、
トップレベルにコードを書くことが多いという性質上、
import 時に余分なコードが実行されるという副作用があります。

デバッグ時の行番号が正しく取れない等、幾つかデメリット有。


読み込みたい対象のファイルが、定数や関数定義のみの場合は、
ノートにする必要はなく、通常の python ファイルとしておいた方が、
Jupyter以外の環境からも使いやすい等、利点は多いです。

投稿2020/05/02 03:55

teamikl

総合スコア8760

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

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

amaturePy

2020/05/02 04:27

ありがとうございます。 アドバイス通りpyファイルで無事実行することができました。 頂いたURLも参考にさせて頂きます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問