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

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

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

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

Q&A

解決済

1回答

926閲覧

Python3 NameError: について

gaijin

総合スコア30

Python 3.x

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

0グッド

0クリップ

投稿2018/11/21 01:47

プログラミング初心者です。
教本をにて勉強を進めているのですが、name errorの原因がいまいちわからずつまづいております。

特にタイプミスや定義のミスはないように自分では思っているのですが、自分では原因を発見できませんでした。 どうかご教授いただければ幸いです。

下記のように定義しております。

import sys import os import fnmatch import datetime import math if len(sys.argv) <= 1: print("[USAGE] findfile [--name][--wild][--desc] name") sys.exit(0) search_mode = "name" search_func = lambda target, name : (target == name) name == "" desc_mode = False for v in sys.argv: if v == "--name": search_mode = "name" search_func = lambda target, name : (target == name) elif v == "--wild": search_mode = "wild" search_func = lambda target, pat : fnmatch.fnmatch(target, pat) elif v == "--desc": desc_mode = True else: name = v print("+ option") print("| search_mode", search_mode, name) print("| desc_mode", desc_mode) for root, dirs, files in os.walk("."): for fname in files: path = os.path.join(root, fname) b = search_func(fname, name) if b == False: continue if desc_mode: info = os.stat(path) kb = math.ceil(info.st_size / 1024) mt = datetime.datetime.fromtimestamp(info.st_mtime) s = "{0},{1}KB,{2}".format(path, kb, mt.strftime("%Y-%m-%d")) print(s) else: print(path)
File "findfile.py", line 13, in <module> name == "" NameError: name 'name' is not defined

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

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

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

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

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

guest

回答1

0

ベストアンサー

name == "" -> name = ""だと思います(比較ではなく代入する)

投稿2018/11/21 01:49

can110

総合スコア38234

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

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

gaijin

2018/11/21 01:56 編集

迅速な回答ありがとうございます。こちらで試したところ続くerrorが発生したのですが、こちらはどのように対処すればよいでしょうか? 先ほど初めからコードを書き直してみたのですが、こちらも同じように何度も出てしまいます。。 File "findfile.py", line 38, in <module> kb = math.ceil(info.st_size / 1024) AttributeError: module 'math' has no attribute 'ceil'
can110

2018/11/21 02:00

コードは問題ないと思います。 findfile.pyと同じ場所にmath.pyというファイルはありませんか?
gaijin

2018/11/21 02:05

同じ場所にファイルは置いてあります。 こちらが問題なのでしょうか?
can110

2018/11/21 02:06

はい。標準モジュールのmathではなく、同じ場所にあるmath.pyをimportしてしまっています。math.pyから別の名前に変えるか別の場所に移してください。
gaijin

2018/11/21 02:12

実行することができました!本当にありがとうございます!   自分もcan10様のように早く理解できるように精進いたします! 差し支えなければなぜimport先が違うことに気づけたのか教えていただきたいのですが? お忙しい中でこんなことを質問してしまし申し訳ありません。。
can110

2018/11/21 02:17

前に同じエラーを経験したことがあったからです。 また、これはPythonではよくある(けど分かりにくい)エラーです。
gaijin

2018/11/21 02:18

わかりました、この度は本当にありがとうございます! 自分もしっかり学んでいきます!
can110

2018/11/21 02:19

がんばってください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問