Это может быть не так сложно, как я первоначально думал.
from glob import glob as gg
# read in list of .h files and build dictionary
hfiles = dict([(r, r.lower) for r in gg('srcDir/*.h')])
# read in c file
with open('srcDir/cfile.c', 'r') as tmp:
cfile = tmp.read().split('\n')
# make include replacements (assuming NO text in file prior to include statments...adjust as needed)
for r in arange(len(cfile):
if ('# include' in cfile[r]) and (cfile[r].split()[-1] in hfiles):
key = cfile[r].split()[-1].lower()
cfile[r] = '# include ' + hfiles[key]
# now right out corrected c file
with open('dst/new_c_file.c', 'w') as fid:
fid.write('\n'.join(cfile))
Это не самый красивый код, и я не проверял его (лучше НЕ перезаписывать ваши файлы, пока вы не проверили это), но общий метод должен работать и быть достаточно гибким.