私はこの必要性を持っており、それが達成できるかどうか知りたいです: WebServer 内に私の Python コードの一部を置きたいです。そして、認証プロセスの後でのみ、スクリプトを実行しているユーザーは、WebServer にあるファイルを読み取り、そのコンテンツを使用してスクリプトの一部として実行できます。ファイルからテキストを変数として読み取り、スクリプト内に記述されているかのようにそのコードを実行できる Python の関数はありますか?
2 に答える
なぜこれをやりたいのかを説明していただければ、それが実際に問題を解決する方法ではないことは間違いありません。
しかしその間:
このexecfile
関数は、ファイルからテキストを読み取り、Python コードとして実行します。
最初にテキストを変数に読み込んでから、その変数でコードを実行したい場合、必要なのはexec
ステートメントです。
代わりにカスタム インポーターが必要な場合があるためimport
、HTTP URL または保存されたテキストからモジュールを取得できます。または、もちろん、カスタム インポーター コードを使用せずに、tempfile.NamedTemporaryFile
追加したディレクトリ内にテキストを書き込んでからsys.path
、そのモジュールを通常どおりに書き出すこともできます。import
詳細については、モジュールのインポートとPEP 302を参照してください。(カスタム インポートに関連するすべてのことは、Python 3.3 では 2.7 よりも 100 倍簡単であることに注意してください。少なくとも、14 か所に散らばっている代わりに、インポート システムから開始することですべてのドキュメントを見つけることができるためです。そのほとんどは C コードのコメントです... )
あなたのアプローチはかなり悪い習慣でなければなりません。ただし、たとえば次のことができます。exec 'print 1 + 2'