@Dato38it

Как мне проигнорировать этот Подкаталог «old» и прочитать данные только из списка?

Есть папка с подкаталогами, в которых мне нужно прочитать определенные файлы по условию:
├───BRT
├───BRY
├───CHE
├───CHV
├───EKT
├───GRN
├───HAN
├───IRK
├───IVN
├───IZH
├───KAM
├───KHA
├───KIR
├───KLG
├───KLN
├───KOM
├───KOS
├───KRA
├───KRC
├───KRG
├───KRS
├───KUR
├───LIP
├───MGD
├───MOS
├───MRD
├───MUR
├───NEN
├───NIN
├───NOV
├───NSK
├───old
│   ├───ARH
│   ├───BEL
│   ├───BRN
│   ├───BRT
│   ├───BRY
│   │   └───От радиопланеров
│   ├───CHE
│   ├───CHV
│   │   └───Old
│   ├───EKT
│   ├───HAN
│   │   └───хлам
│   ├───IRK
│   │   ├───IRK
│   │   ├───IRK_Lac_new
│   │   └───URA
│   ├───IZH
│   ├───KAZ
│   │   ├───old
│   │   └───URA
│   ├───KEM
│   ├───KHA
│   ├───KIR
│   ├───KLG
│   ├───KLN
│   ├───KOM
│   ├───KOS
│   ├───KRA
│   ├───KRG
│   │   └───OLD
│   ├───KRS
│   │   └───OLD
│   ├───KUR
│   ├───LIP
│   ├───MOS
│   │   └───old
│   ├───MRD
│   ├───MUR
│   ├───NIN
│   │   ├───URA
│   │   └───Хлам
│   ├───NOV
│   ├───NSK
│   │   └───old
│   ├───OMS
│   ├───ORB
│   ├───ORL
│   │   └───От планеров
│   ├───PNZ
│   ├───PRM
│   ├───PSK
│   ├───PZV
│   ├───ROS
│   ├───RYZ
│   ├───SAH
│   ├───SAM
│   ├───SMO
│   ├───SPB
│   ├───SRV
│   │   └───OLD
│   ├───TAM
│   │   └───URA
│   ├───TOM
│   ├───TUL
│   ├───TUM
│   │   └───old
│   ├───TVE
│   ├───TYV
│   ├───ULN
│   ├───VLA
│   ├───VLD
│   ├───VLG
│   ├───VOL
│   │   └───URA
│   ├───VRN
│   ├───YNR
│   └───YOL
├───OMS
├───ORB
├───ORL
├───PNZ
├───PRM
├───PSK
├───PZV
├───ROS
├───RYZ
├───SAH
├───SAM
├───SMO
├───SPB
├───SRV
├───SVS
├───TAM
├───TOM
├───TUL
├───TUM
├───TVE
├───TYV
├───UFA
├───ULN
├───VLA
├───VLD
├───VLG
├───VOL
├───VRN
├───YNR
├───YOL
└───YRL

В данной папке есть Подкаталог "old", который вообще мешает, из-за него куча повторяющихся файлов отображается. Также я создал список, по которому можно отсортировать какие папки можно прочитать: ['IRK','MGD','SAH','KHA','KAM'] Такой вывод отображается когда я запускаю код:
...
IR.kml
IR.kml
IR.kml
IR.kml
IR.kml
...
RO.kml
RO.kml
RO.kml
RO.kml
RO.kml
RZ.kml
RZ.kml
RZ.kml
RZ.kml
RZ.kml
SA.kml
SA.kml
SA.kml
SA.kml
SA.kml
SR.kml
SR.kml
SR.kml
SR.kml
SR.kml
...
YR.kml
YR_ACTUAL.kml
YR.kml
YR_ACTUAL.kml
YR.kml
YR_ACTUAL.kml
YR.kml
YR_ACTUAL.kml
YR.kml
YR_ACTUAL.kml

Когда я выполняю свой код, он у меня всю папку почему-то сканирует, хотя я в условии писал без old.
if (i in listreg) and (i != "old"):
И почему то программа дублирует аж 5 раз, на примере IR.kml. Как мне проигнорировать этот Подкаталог "old" и прочитать данные только из этого списка ['IRK','MGD','SAH','KHA','KAM']? Вот фрагмент кода:
netpath = "data/"
        listreg=['IRK','MGD','SAH','KHA','KAM']
        listnetfiles = []
        listnetdirs = []
        needdir=[]
        for root, dirs, files in os.walk(netpath):
            #print(dirs) 
            listnetdirs.append(dirs)
        #print(listnetdirs[0])        
            for i in listnetdirs[0]:
                #print(i)
                #with open("output.txt", "a") as outfile:
                #    outfile.write(i+"\n")
                if (i in listreg) and (i != "old"):
                    #print(i)
                    needdir.append(i)
                    needdir = list(dict.fromkeys(needdir))
                    #print(needdir)
                    for kmlfile in files:
                        print(kmlfile)
                        #if prefixs[0] in kmlfile:
                else:
                    continue
        #print(needdir)

Может быть как то можно вообще переделать код по считыванию определенных файлов в папке? Мне допустим надо будет прочитать файл IR.kml в папке IRK. проблема в том что он есть в папке old еще. поэтому папку old хочу проигнорировать. а как это сделать без дополнительных библиотек?
  • Вопрос задан
  • 17 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы