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”?
如果写import glob
,则需要使用glob.glob
。
[from glob import glob
取glob.glob
并使其仅用作glob
。
>>> 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
如果使用import glob
,则对于功能glob("*.txt")
,必须编写glob.glob("*.txt")
。
[基本上,glob
中的第一个from glob import glob
是模块的名称,而第二个是函数的名称。
[from glob import glob
将导入glob
模块的glob
属性,而import glob
将导入整个模块
[具有import
glob时,将从该模块导入所有功能。当您拥有from xyz import abc
时,仅从abc
模块导入xyz
功能。在这种情况下,您要从glob
模块导入glob
功能。
这样,在Python代码中,如果要使用glob
函数,则不必编写glob.glob
,而只需编写glob
。