0

evalオプションを txt ファイルに保存するプログラムを作成しています。いくつかの異なる行を試しましたが、これまでのところ anが最適だと思います。

ファイルでこの情報を取得しました:

colordefondo = "#abcdef"

そして私はevalプログラムでこれを得ました:

for line in open("filename.txt", "r"):
  eval(line)

ただし、コードを試すと、次のエラーが表示されます。

Traceback (most recent call last):
File "D:\project-sae\Sae.py", line 25, in <module>
eval(line)
File "<string>", line 1
colordefondo = "#abcdef"
             ^
SyntaxError: invalid syntax

私の質問はなぜですか?また、いくつかのオプションの値を txt ファイルから読み込んで保存するより良い方法を誰かが知っていれば、それは素晴らしいことです。それにもかかわらず、私の質問は、なぜそれevalが失敗しているのか、どのように機能するかについての私の知識がeval間違っているように思われ、その理由がわかりません.以前に何度か使用しました.

4

1 に答える 1

5

ドキュメントにあるように、「eval」は式を評価します。声明ではありません。割り当てはステートメントです。

execステートメントを使用できます。しかし、ファイルのすべての行を実行したい場合は、まさにそれが実行されますexecfile。(ここでは Python 2.x を想定しています。3.x では少し異なりますが、考え方は似ています。)

ただし、これを最初に行うのは悪い考えです。いくつかのオプションの値を txt ファイルから読み込んで保存するより良い方法は、フォーマットとしてPython ソース以外のものを使用することです。JSON、.ini ファイル、.rc ファイルなど。Python には、このようなさまざまな形式を処理するコードが組み込まれています。関連するモジュールのリストについては、ファイル形式インターネット データ処理を参照してください。それらを読み、必要なものを選択してください。

于 2013-11-08T22:03:16.303 に答える