adresinin import
olduğunu belirtmenin bir yolu var mı?Python'daki bir dosyayı adıyla boşluklarla nasıl içe aktarabilirsiniz?
cevap
Boşlukları dosya isminden çıkarmalısınız. Dosya adı, içe aktarılan modüller için tanımlayıcı olarak kullanıldığından (yani foo.py
, foo
olarak içe aktarılır) ve Python tanımlayıcılarının boşlukları olamayacağı için bu, import
bildirimi tarafından desteklenmez. Bu foo_bar
olarak foo bar.py
ithal edecek
foo_bar = __import__("foo bar")
: Eğer gerçekten nedense bunu yapmak gerekirse
, sen __import__
işlevini kullanabilirsiniz. Bu, import
ifadesinden biraz farklı davranır ve bundan kaçınmalısınız.
Eğer from foo_bar import *
böyle bir şey yapmak istiyorsanız (ama bunun yerine bir alt çizgi bir boşluk) kullanarak, execfile (Dokümanlar here) kullanabilirsiniz:
execfile("foo bar.py")
kaynak dosya adlarında boşluk önlemek için daha iyi bir uygulama olsa .
__import__
civarında bir sarıcı olan importlib.import_module
işlevini de kullanabilirsiniz.
foo_bar_mod = importlib.import_module("foo bar")
veya
foo_bar_mod = importlib.import_module("path.to.foo bar")
diğer bilgiler: https://docs.python.org/2/library/importlib.html
Kodun bir kısmı gösterir misiniz lütfen? Normalde Python dosya isimlerindeki boşluklarla ilgili bir problemi yoktur. (Ah, 'import' ifadesinden bahsetmezseniz, bekle. Python, modül adlarındaki boşlukları desteklemiyor.) –