【发布时间】:2020-12-15 17:24:47
【问题描述】:
列出来自给定 python 代码的所有导入
例子:
**Input**:
import string
**Output**: ['string']
示例2:
注意:如果使用别名导入包,即“as”,则应仅打印别名而不是包名
**Input:**
from string import digit, ascii_lowercase
from datetime import datetime as dt, date as d, time as t
# This is a comment
def met_02():
pass
print('print this')
**output**: ['digit', 'ascii_lowercase', 'dt', 'd', 't']
我尝试了以下代码,但它只打印导入,但它应该在别名 ("as") 之后打印导入,如果存在,否则在示例 2 中提到的别名之后打印包
def list_imports(lines):
imports = []
for file in lines:
result = re.findall(r"(?<!from)import (\w+)[\n.]|from\s+(\w+)\s+import", lines)
for imp in result:
for i in imp:
if len(i):
if i not in imports:
imports.append(i)
return (imports)
【问题讨论】:
-
python 代码作为字符串传递
-
或者这个stackoverflow.com/questions/2572582/… 好像之前有人问过这个问题
-
导入行也可以以“from”开头,例如
from math import sqrt。 -
你需要这个列表做什么?