2
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」を使用する理由はありますか?

4

6 に答える 6

5

と書く場合はimport glob、 を使用する必要がありますglob.glob

from glob import globglob.globだけで利用できるようにしますglob

于 2012-08-08T13:44:07.913 に答える
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
于 2012-08-08T13:43:52.343 に答える
3

import glob関数にを使用する場合は、glob("*.txt")を記述する必要がありますglob.glob("*.txt")

基本的に、 の 1glob番目from glob import globはモジュールの名前で、2 番目は関数の名前です。

于 2012-08-08T13:44:33.140 に答える
2

from glob import globモジュール全体をインポートするときglobにモジュールの属性をインポートしますglobimport glob

于 2012-08-08T13:45:25.447 に答える
2

このリンクは、さまざまなバリエーションのすべてを非常によく説明しているようです。

http://effbot.org/zone/import-confusion.htm

肝心なのは、モジュールから特定のものをインポートすると、モジュール全体ではなく、そのもののみを直接参照できるということです。

于 2012-08-08T13:47:35.067 に答える
1

グロブがある場合import、そのモジュールからすべての関数をインポートします。がある場合は、モジュールから関数をfrom xyz import abcインポートするだけです。この場合、モジュールから関数をインポートしています。abcxyzglobglob

このように、Python コードでは、glob関数を使用する場合は、 を記述する代わりに、 を記述glob.globするだけで済みますglob

于 2012-08-08T13:44:52.823 に答える