我希望儘早做出一套文件,在某些時候,最好的方式來組織它是有一個列表,該列表將位於文件的最頂端,之後將會有一段荒謬的代碼來處理該列表控件以及它的操作方式。我期待寫說名單隻有一次,並表示名單文件夾和文件名的格式列表:
[(folder/filename, bool, bool, int), (folder/filename, bool, bool, int)]
正如你所看到的,folder/filename
是相同的(在某種程度上)的。文件名是文件夾名稱,最後輸入.py
,但是在導入XXX時,您不需要導入XXX.py,所以我沒有看到導致問題的原因。
我面對使用這種方法是進口的問題...
for (testName, auto, hardware, bit) in testList:
print(testName)
paths = "\\" + testName
print paths
addpath(paths)
sys.modules[testName] = testName # One of a few options I've seen suggested on the net
print("Path Added")
test = testName + ".Helloworld()"
eval(test)
因此,對於每個測試我有,打印的名字,組裝其中包含路徑("\\testName"
)的字符串,在這個例子中,打印測試路徑,然後將路徑添加到列表(sys.path.append(path)
),然後打印以確認發生,然後組裝將由測試主模塊eval
執行的字符串並最終評估它。
正如您所看到的,我目前必須在頂部有一個導入列表。我不能簡單地執行導入testName
(testName
的內容是我希望導入的模塊的名稱),因爲它會嘗試找到名爲testName
的模塊,而不是稱爲testName
的內容的模塊。
我已經看到了幾個這樣做的例子,但在我的情況下找不到任何工作。如果有人可以從字面上扔出一大堆代碼,那會很棒。
我也會要求我沒有被掛起,繪製,也沒有使用eval,它被用在一個非常受控的環境中(它循環的列表在.py文件中,所以沒有「最終用戶「應該搞砸了)。
注意,縮進是正確的ST,由於某種原因,我覺得這只是網站不喜歡正確地分析我的文字:( – XtrmJosh
不要使用製表符,但空間縮進。 –
的Python已經有辦法管理您可能想要導入的大量'.py'文件集合,這些文件可以理解文件夾和子文件夾,可以處理相對導入,正確執行命名空間等等,它被稱爲[package](http:// docs。 python.org/2/tutorial/modules.html#packages)。是否有你不想使用它的原因? – katrielalex