我的目標是動態生成函數,然後將它們保存在文件中。對於例如,在我目前的嘗試中,在調用create_file
減少Python代碼生成中嵌套函數的縮進
import io
def create_file():
nested_func = make_nested_func()
write_to_file([nested_func, a_root_func], '/tmp/code.py')
def a_root_func(x):
pass
def make_nested_func():
def a_nested_func(b, k):
return b, k
return a_nested_func
def write_to_file(code_list, path):
import inspect
code_str_list = [inspect.getsource(c) for c in code_list]
with open(path, 'w') as ofh:
for c in code_str_list:
fh = io.StringIO(c)
ofh.writelines(fh.readlines())
ofh.write('\n')
create_file()
我想輸出是( '/ tmp目錄/ code.py'):
def a_nested_func(b, k):
return b, k
def a_root_func(x):
pass
我得到的輸出是('/ tmp目錄/code.py'):
def a_nested_func(b, k):
return b, k
def a_root_func(x):
pass
a_nested_func
是縮進的。我怎樣才能減少縮進?我可以做lstrip
等,但我不知道是否有更好的方法。
查找最小縮進行(可能是第一個就足夠了)。找到其中的縮進量。寫入之前從所有行中剪下相同的數量。 – 9000