擅长:python、mysql、java
<p>比正则表达式更好的工具是Python附带的<code>ast</code>模块。要查找<code>from ... import</code>最外层范围内的所有<code>a.py</code>语句并打印所有导入的名称,可以使用</p>
<pre><code>import ast
code = open("a.py").read()
for node in ast.parse(code).body:
if isinstance(node, ast.ImportFrom):
for name in node.names:
print name.name
</code></pre>
<p>注意,这个简单的代码将丢失任何不直接在模块级的语句,例如try块中的import语句。通过使用<code>ast.walk()</code>遍历所有节点,可以很容易地解决这个问题。你知道吗</p>