如何在Python中根据flag控制路径拼接,实现不同目录流程执行?
解决方案
直接调整path_str的赋值逻辑就能解决问题:当flag=0时,把path_str设为包含空字符串的列表[""],这样循环会执行一次,刚好拼接出你需要的C:/User/Folder/img路径。
修改后的代码如下:
inpDir = r"C:/User/Folder" flag = 0 if flag == 1: path_str = ["/1", "/5", "/12", "/54", "/76"] else: path_str = [""] # 改为含空字符串的列表,保证循环执行一次 for i in path_str: target_dir = inpDir + i + "/img" print(f"正在处理目录:{target_dir}") # 在这里编写你的处理逻辑 do all the process now for each subfolders
额外优化建议
手动用+拼接路径容易出现分隔符混乱的问题(比如不同操作系统的路径符号不一样),推荐用Python标准库的os.path.join或者pathlib来处理路径,更稳定通用:
用os.path.join的写法
import os inpDir = r"C:/User/Folder" flag = 0 if flag == 1: path_str = ["1", "5", "12", "54", "76"] # 去掉开头的/,join会自动处理路径分隔 else: path_str = [""] for i in path_str: target_dir = os.path.join(inpDir, i, "img") print(f"正在处理目录:{target_dir}") # 处理逻辑
用pathlib的写法(Python3.4+推荐)
from pathlib import Path inpDir = Path(r"C:/User/Folder") flag = 0 if flag == 1: path_str = ["1", "5", "12", "54", "76"] else: path_str = [""] for i in path_str: target_dir = inpDir / i / "img" print(f"正在处理目录:{target_dir}") # 处理逻辑
内容的提问来源于stack exchange,提问作者TFAE
相关产品推荐
相关产品推荐

