iPython3, открытый в Терминале - os.path.dir, добавляет букву 'd' для соединения каналом и инициировал Файл, не найденный ошибкой

Попытка выполнить итерации через папку. Я работаю над ipython3, открытым в Терминале. Это - код (в Python 3.6.4):

for filename in os.listdir('.'):
    for file in filename:
       with open(os.path.join('.',file), 'r') as f:
            print(len(f))

Однако я получаю эту ошибку.

FileNotFoundError                         Traceback (most recent call last)
<ipython-input-6-1702c8aca957> in <module>()
  1 for filename in os.listdir('.'):
  2     for file in filename:
----> 3         with open(os.path.join('.',file), 'r') as f:
  4             print(len(f))
  5 

FileNotFoundError: [Errno 2] No such file or directory: './d'

'd' добавляется к пути, и каталог не может быть найден. То же происходит с Jupypter QtConsole.

1
задан 27 May 2018 в 11:07

1 ответ

os.listdir возвращает список имен файлов. С

for file in filename

цикл Вы выполняете итерации по буквам в этом имен файлов и первого найденного имени файла, кажется, запускается с a 'd'. Удалите этот цикл.

Позже в Вашем коде

print(len(f)) 

выдаст исключение, поскольку Вы не можете использовать len с дескриптором файла. Если Вы хотите добраться, размер файла используют os.path.getsize ()

1
ответ дан 7 December 2019 в 15:18

Другие вопросы по тегам:

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