Есть папка с подкаталогами, в которых мне нужно прочитать определенные файлы по условию:
spoiler├───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'] Такой вывод отображается когда я запускаю код:
spoiler...
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 хочу проигнорировать. а как это сделать без дополнительных библиотек?