我正在尝试使用NamedTempopraryFile创建一个临时文件数组,但是它似乎并没有达到我的预期效果。仅创建一个临时文件,然后函数返回,而不是db_file_paths中包含许多元素。
有人看错吗?
输入示例:db_file_path = ["/mnt/somedir/data_0" , /mnt/somedir/data_1"]
def create_ini(db_file_paths):
#array of file tmpfs ini filehandles
file_handles = []
for path in db_file_paths:
#make a tempfs file handle
f_handle = tempfile.NamedTemporaryFile(delete=False)
#match and replace db dummy file path
f_handle = replace( f_handle.name, source_ini, pattern, path )
file_handles.append(f_handle)
return file_handles
最佳答案
您将在for循环的第一次迭代结束时返回。重新缩进最后一行,以便仅在for循环结束后才执行。
def create_ini(db_file_paths):
#array of file tmpfs ini filehandles
file_handles = []
for path in db_file_paths:
#make a tempfs file handle
f_handle = tempfile.NamedTemporaryFile(delete=False)
#match and replace db dummy file path
f_handle = replace( f_handle.name, source_ini, pattern, path )
file_handles.append(f_handle)
return file_handles # <-- change of indentation here