2012-02-03 1 views
23

Do I にはにファイル名のすべてのスペースを取り込んでインポートするか、またはスペースがあることをimportに伝える方法がありますか?名前にスペースを入れたファイルをPythonでどのようにインポートしますか?

+0

あなたはいくつかのコードを示してもらえてください?通常、Pythonではファイル名のスペースに問題はありません。 (まあ、 'import'文について話しているのでない限り、Pythonはモジュール名のスペースをサポートしていません。) –

答えて

29

ファイル名のスペースを取る必要があります。ファイル名はインポートされたモジュールの識別子として使用されるため(foo.pyfooとしてインポートされます)、Python識別子にはスペースを使用できません。importステートメントではサポートされていません。

あなた本当にあなたが__import__機能を使用することができ、いくつかの理由のためにこれを行う必要がある場合:

foo_bar = __import__("foo bar") 

これはfoo_barとしてfoo bar.pyをインポートします。これはimportステートメントとは少し異なる動作をしますので、避けてください。

7

あなたはfrom foo_bar import *のような(しかし、代わりにアンダースコアをスペースで)何かをしたい場合は、execfileを(ドキュメントhere)を使用することができます:それは、ソースファイル名にスペースを避けるために、より良い習慣だけれども

execfile("foo bar.py") 

は、 。

0

また、__import__のラッパーであるimportlib.import_module関数を使用することもできます。

foo_bar_mod = importlib.import_module("foo bar") 

または

foo_bar_mod = importlib.import_module("path.to.foo bar") 

さらに詳しい情報:https://docs.python.org/2/library/importlib.html

関連する問題