在类似udev/rules.d、cron.d或/apt/source.d中执行Python脚本
我用Python来修改一些Linux系统的设置,这些系统是用partimage分发的。现在我想要一个这样的Python脚本结构:
/patch.d/
10_patch_netwok.py
20_patch_hostname.py
...
50_patch_software_xyz.py
InitSystem.py
这个InitSytem.py
脚本应该能够运行/patch.d
文件夹里的其他Python脚本。根据我的想法(头脑风暴):
files = glob.glob("patch.d/*.py")
files.sort()
for file in files:
execfile(file, ...)
有什么好的方法可以从一个Python脚本中加载并运行其他Python脚本吗?
1 个回答
1
Python脚本其实也是Python模块,所以加载和运行它们最简单的方法就是直接用
__import__('some_module')
来导入它们。不过这样做的话,它们会在同一个进程里运行。如果你不想这样,可以选择使用Python的多线程或多进程功能,让每个脚本在不同的线程或进程中运行,这样就不会互相干扰了。另一种方法是使用os.subprocess模块,这样可以进行系统调用来运行这些脚本。