Как получить список папок в одной директории ?

satfan

Пользователь
Пользователь
Апр 21, 2020
98
6
8
IDLE (Python 3.10 64-bit)
Windows 10
---------------------------
Нужны только названия папок, которые построчно запишутся в файл: out_ok.txt
Вот скрипт:
Python:
import os
 
print('E:\Zapis_RadioSure')
path =  input()
sp = [i for i in os.walk(path) ] [0][1]
print('Всего каталогов: ',len(sp))
with open(path+'/'+'text.txt', 'w') as f:
    for i in sp:
        f.write(i+ '\n')
выдал ошибку:

Traceback (most recent call last):
File "C:\Users\Пк\Desktop\Как получить список директорий\1.py", line 5, in <module>
sp = [i for i in os.walk(path) ] [0][1]
IndexError: list index out of range
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 672
478
83
Уважаемый regnor спасибо.
Вот этот скрипт:
Python:
import os

path = 'E:\Мой Python\__Видеокурсы Python'

rez = sorted(os.listdir(path))
for n, item in enumerate(rez):
    print(n+1, item)
Подскажите как итог работы скрипта записать в файл: out_ok.txt
Python:
import os

path = 'E:\Мой Python\__Видеокурсы Python'
rez = sorted(os.listdir(path))
with open("out_ok.txt", "w") as file:
    for n, item in enumerate(rez):
        file.write(f"{n + 1} {item}\n")
 

Noor

Пользователь
Пользователь
Ноя 13, 2020
85
19
8
посмотрите
os.walk(directory)
 

satfan

Пользователь
Пользователь
Апр 21, 2020
98
6
8
Вот есть другой скрипт:
Python:
import os

print(os.listdir(r"E:/Zapis_RadioSure"))

Он работает.
Только как добавить в код, чтобы названия папок, построчно записались в файл: out_ok.txt ?
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 672
478
83
IDLE (Python 3.10 64-bit)
Windows 10
---------------------------
Нужны только названия папок, которые построчно запишутся в файл: out_ok.txt
Вот скрипт:
Python:
import os
 
print('E:\Zapis_RadioSure')
path =  input()
sp = [i for i in os.walk(path) ] [0][1]
print('Всего каталогов: ',len(sp))
with open(path+'/'+'text.txt', 'w') as f:
    for i in sp:
        f.write(i+ '\n')
выдал ошибку:

Traceback (most recent call last):
File "C:\Users\Пк\Desktop\Как получить список директорий\1.py", line 5, in <module>
sp = [i for i in os.walk(path) ] [0][1]
IndexError: list index out of range
ваш код работает... никаких ошибок нет
 

satfan

Пользователь
Пользователь
Апр 21, 2020
98
6
8
Спасибо regnor
Второй скрипт выдаёт ошибку
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 672
478
83
Спасибо regnor
Второй скрипт выдаёт ошибку
какой второй?
 

satfan

Пользователь
Пользователь
Апр 21, 2020
98
6
8
Вот этот:
Python:
import os
 
print('E:\Zapis_RadioSure')
path =  input()
sp = [i for i in os.walk(path) ] [0][1]
print('Всего каталогов: ',len(sp))
with open(path+'/'+'text.txt', 'w') as f:
    for i in sp:
        f.write(i+ '\n')
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 672
478
83
Вот этот:
Python:
import os
 
print('E:\Zapis_RadioSure')
path =  input()
sp = [i for i in os.walk(path) ] [0][1]
print('Всего каталогов: ',len(sp))
with open(path+'/'+'text.txt', 'w') as f:
    for i in sp:
        f.write(i+ '\n')
он работает... никаких ошибок нет...
 

satfan

Пользователь
Пользователь
Апр 21, 2020
98
6
8
Уважаемый regnor спасибо.
Вот этот скрипт:
Python:
import os

path = 'E:\Мой Python\__Видеокурсы Python'

rez = sorted(os.listdir(path))
for n, item in enumerate(rez):
    print(n+1, item)
Подскажите как итог работы скрипта записать в файл: out_ok.txt
 

satfan

Пользователь
Пользователь
Апр 21, 2020
98
6
8
Спасибо regnor
Всё отлично. Ваш форум лучший.
Здоровья и удачи.
 

Форум IT Специалистов