1

ユーザー入力があり、open 関数のファイル名パラメーターとして渡したいと思います。これは私が試したことです:

filename = input("Enter the name of the file of grades: ")
file = open(filename, "r")

ユーザー入力openMe.pyにエラーが発生した場合、

NameError: name 'openMe' is not defined

しかし、ユーザーが"openMe.py" と入力すると、正常に動作します。ファイル名変数が文字列だと思ったので、なぜそうなのか混乱しています。助けていただければ幸いです。ありがとうございます。

4

2 に答える 2

1

Ashwini が言ったように、は本質的に と見なされるraw_inputため、python 2.x で使用する必要があります。inputeval(raw_input())

input("openMe.py")最後に を削除するように見える理由.pyは、Python が呼び出されたオブジェクトを見つけてその属性openMeにアクセスしようとするため.pyです。

>>> openMe = type('X',(object,),{})() #since you can't attach extra attributes to object instances.
>>> openMe.py = 42
>>> filename = input("Enter the name of the file of grades: ")
Enter the name of the file of grades: openMe.py
>>> filename
42
>>> 
于 2013-05-02T08:01:56.347 に答える