2012-02-03 46 views
23

Tôi có phải đưa ra tất cả các khoảng trống trong tên tệp để nhập hay không, hoặc có cách nào để nói import rằng có không gian?Làm thế nào để bạn nhập một tệp trong python có dấu cách trong tên?

+0

bạn có thể hiển thị một số mã xin vui lòng? Thông thường Python không có vấn đề gì với các khoảng trống trong tên tập tin. (Oh chờ đã, trừ khi bạn đang nói về câu lệnh 'import', trong trường hợp đó Python không hỗ trợ các khoảng trắng trong các tên module.) –

Trả lời

29

Bạn nên lấy khoảng trống ra khỏi tên tệp. Vì tên tệp được sử dụng làm số nhận dạng cho các mô-đun đã nhập (tức là foo.py sẽ được nhập là foo) và số nhận dạng Python không thể có dấu cách, điều này không được hỗ trợ bởi tuyên bố import.

Nếu bạn thực sự cần phải làm điều này vì một lý do, bạn có thể sử dụng chức năng __import__:

foo_bar = __import__("foo bar") 

này sẽ nhập khẩu foo bar.py như foo_bar. Điều này có một chút khác biệt so với tuyên bố import và bạn nên tránh điều đó.

7

Nếu bạn muốn làm một cái gì đó giống như from foo_bar import * (nhưng với một không gian thay vì một dấu gạch dưới), bạn có thể sử dụng execfile (docs here):

execfile("foo bar.py") 

dù đó là thực hành tốt hơn để tránh khoảng trống trong tên tập tin nguồn .

0

Bạn cũng có thể sử dụng chức năng importlib.import_module, là một trình bao bọc xung quanh __import__.

foo_bar_mod = importlib.import_module("foo bar") 

hoặc

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

Thông tin thêm: https://docs.python.org/2/library/importlib.html

Các vấn đề liên quan