我正在尝试使用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

09-25 18:29
查看更多