Create/Loop 通过不同的文件夹和保存文件

Create/Loop through different folders and Saving files

我想写一个代码去 input_folder[i],检查 output_folder[i] 是否存在,如果不存在则创建 output_folder[i]。定义输入和 output_folder_1 后,它会转到输入中的文件,对其执行操作并保存 output_folder_1.

Inputs = [dir for dir in os.listdir() if dir.startswith("DATASET_")]
for i in Inputs:
     input_dir = i
     try:
          output_dir = [dir for dir in os.listdir() if dir.startswith("Result_"+ i)]
     except:
          print(f'Output_Dir  {output_dir} does not exist. Creating new')
          output_dir = os.mkdir("Result_" + i )
          function(input_dir, output_dir)

它创建了输入和输出目录,但是当函数代码不执行时。如果我在 except 语句之外调用函数,它会报错。接下来的部分代码如下:

def function(input_dir, output_dir):
     os.makedirs(output_dir, exist_ok=True)
     im_list = [file for file in os.listdir(input_dir) if file.endswith(".png")]

错误如下:

TypeError: expected str, bytes or os.PathLike object, not list

你函数的第二个参数命名错误,应该是 output_dirs(复数)。

然后很明显,在您想要的函数中 对其进行迭代。

或者,函数签名已经很完善了, 并且调用者应该遍历目录列表, 每次为函数提​​供一个目录。