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

如何得到路径下的绝对路径并且回传到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日

悬赏问题

  • ¥15 DS18B20内部ADC模数转换器
  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动