在类似udev/rules.d、cron.d或/apt/source.d中执行Python脚本

1 投票
1 回答
658 浏览
提问于 2025-04-15 18:49

我用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模块,这样可以进行系统调用来运行这些脚本。

撰写回答