1

Pythonスクリプトによってインポートされたローカルモジュール(スクリプト)のみのリストを取得する方法はありますか?

私は2つのファイルを持っていることを意味します。スキャンされたものとスキャナー。そして、スキャンされたものが使用するローカルモジュールを特定する必要があります(おそらくmodulegraph/modulefinderを使用して)が、自分で答えを見つけることができませんでした。

編集:実際には、スキャンされたモジュールをスキャナーモジュールにインポートせずにこれを行う必要があるため、ファイルスキャンの方法のようです。

4

2 に答える 2

0

他のモジュールのすべてのオブジェクトをフィルタリングして、それらがモジュールタイプであるかどうかを確認することでアプローチしました。
これはあまり効率的ではありませんが、そうする必要はないと思います。

import foo # your module

import types
print dict((k, v) for (k, v) in foo.__dict__.iteritems() if type(v)==types.ModuleType)
于 2013-03-02T00:49:14.667 に答える
0

Python は C/Java などよりもはるかに動的であるため、スキャンしたモジュールをインポート/実行できないと問題が発生します。次のタイプのコードを検討してください。

re = __import__('re')
mymodule = __import__(raw_input()) # even worse for you

スキャンするモジュールをどれだけよく知っているかに応じて、テキスト検索を実行しても問題ない場合があります。

于 2013-03-03T00:21:49.937 に答える