可能重复:
'import module' or 'from module import'
from … import
vsimport .
from glob import glob
from os.path import isfile
def countwords(fp):
with open(fp) as fh:
return len(fh.read().split())
print "There are" ,sum(map(countwords, filter(isfile, glob("*.txt") ) ) ), "words in the files."
在第一行,为什么不只是简单地导入glob库?
有没有理由在“import glob”前面使用“from glob”?
答案 0 :(得分:5)
如果您撰写import glob
,则需要使用glob.glob
。
from glob import glob
获取glob.glob
并将其设为glob
。
答案 1 :(得分:4)
>>> import glob
>>> dir(glob)
['__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__',
'fnmatch', 'glob', 'glob0', 'glob1', 'has_magic', 'iglob', 'magic_check',
'os', 're', 'sys']
你可以在这里看到glob模块中的所有函数,你可能想要一个glob的迭代器版本,在这种情况下你可以使用:
from glob import iglob
答案 2 :(得分:3)
如果你使用import glob
,对于函数glob("*.txt")
,你必须写glob.glob("*.txt")
。
基本上,glob
中的第一个from glob import glob
是模块的名称,而第二个是函数的名称。
答案 3 :(得分:2)
from glob import glob
导入整个模块时, glob
将导出glob
模块的import glob
属性
答案 4 :(得分:2)
这个链接似乎很好地解释了所有不同的变化:
http://effbot.org/zone/import-confusion.htm
最重要的是,从模块导入特定的东西只能直接引用那个东西,而不是整个模块。
答案 5 :(得分:1)
如果有import
glob,则从该模块导入所有函数。如果您有from xyz import abc
,那么您只需从abc
模块导入xyz
功能。在这种情况下,您要从glob
模块导入glob
函数。
这样,在Python代码中,如果您想使用glob
函数,而不是编写glob.glob
,则只需编写glob
。