Eric12219180 2023-01-31 19:36 采纳率: 61.1%
浏览 117
已结题

如何得到路径下的绝对路径并且回传到list上

img


如图所示 我的CBIS-DDSM下面有四种类型的文件夹分别是Mass-Test_, Mass-Training_, Calc-Test_, Calc-Training_, 如下四图

img


img



img



img


然后! 在这四大类的文件夹中, 又分别夹着两个子文件夹. 才会到.dcm档案的地方。 举例!

img


好了, 问题来了。
我该如何分成四个不同的list里面装着Mass-Test_类的dcm 绝对路径, Mass-Training_的绝对路径, Calc-Test的绝对路径,Calc-Training_的绝对路径。
比如:

img


只是这边只分成train和test两个list来装路径,但概念是一样的,并且这个例子的路径没有那么多子文件夹夹在里面。
我到底要怎么忽略那两个子文件夹, 让我的dcm档案路径直接return回list里面呀?
请帮我集思广益,感谢。
希望我的描述够清楚, 可能看起来有点复杂。

  • 写回答

9条回答 默认 最新

  • heart_6662 2023-01-31 20:35
    关注

    写了个示例代码给你

    
    import os
    
    path = "CBIS-DDSM" # 根目录
    
    mass_test_list = []
    mass_train_list = []
    calc_test_list = []
    calc_train_list = []
    
    for root, dirs, files in os.walk(path):
        for dir in dirs:
            if dir.startswith("Mass-Test_"):
                sub_path = os.path.join(root, dir)
                for sub_root, sub_dirs, sub_files in os.walk(sub_path):
                    for sub_file in sub_files:
                        if sub_file.endswith(".dcm"):
                            mass_test_list.append(os.path.join(sub_root, sub_file))
            elif dir.startswith("Mass-Training_"):
                sub_path = os.path.join(root, dir)
                for sub_root, sub_dirs, sub_files in os.walk(sub_path):
                    for sub_file in sub_files:
                        if sub_file.endswith(".dcm"):
                            mass_train_list.append(os.path.join(sub_root, sub_file))
            elif dir.startswith("Calc-Test_"):
                sub_path = os.path.join(root, dir)
                for sub_root, sub_dirs, sub_files in os.walk(sub_path):
                    for sub_file in sub_files:
                        if sub_file.endswith(".dcm"):
                            calc_test_list.append(os.path.join(sub_root, sub_file))
            elif dir.startswith("Calc-Training_"):
                sub_path = os.path.join(root, dir)
                for sub_root, sub_dirs, sub_files in os.walk(sub_path):
                    for sub_file in sub_files:
                        if sub_file.endswith(".dcm"):
                            calc_train_list.append(os.path.join(sub_root, sub_file))
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(8条)

报告相同问题?

问题事件

  • 系统已结题 2月10日
  • 已采纳回答 2月2日
  • 创建了问题 1月31日

悬赏问题

  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加