有一個高度高效的StackOverflow thread,它說在另一個Python文件中運行Python文件的最佳方式是將它們作爲模塊使用import
。以編程方式將Python文件作爲另一個Python文件中的模塊導入並運行它們
這對我來說很好,除非我在編程運行時至少有數百個(如果不是數千個)文件需要運行時遇到問題。
所有的文件都在同一個目錄中,並且共享一個通用的命名約定。我試圖像這樣運行它們:
import glob, os
for filename in glob.glob("*_decomp*"):
import filename
而是拋出一個錯誤:
Traceback (most recent call last): File "C:\Python35\lib\site-packages\IPython\core\interactiveshell.py", line
3066, in run_code exec(code_obj, self.user_global_ns, self.user_ns) File "", line 4, in import filename File "C:\Program Files\JetBrains\PyCharm Community Edition 2017.1.3\helpers\pydev_pydev_bundle\pydev_import_hook.py", line 21, in do_import module = self._system_import(name, *args, **kwargs) ImportError: No module named 'filename'
變量filename
也強調了紅色的IDE,它否定了我原來的假設,這是一個簡單的需要刪除.py文件擴展名的問題。
這工作正常進行打印:
import glob, os
for filename in glob.glob("*_decomp*"):
# import filename
print(filename)
所以,我真的不知道與早些時候的發言是什麼問題或如何解決它。我也可以手動執行import
並且工作正常,但我希望以編程方式執行此操作,以便我不必鍵入所有文件名,並且因爲文件名會隨時間而改變。
最後,我也[:-3]
(即filename[:-3]
)試了一下刪除文件擴展名,但同樣只適用於print()
,而不是import
。