iPython3 aberto no Terminal - os.path.dir adiciona a letra 'd' ao caminho e aciona o erro Arquivo não encontrado

1

Tentando percorrer uma pasta. Eu estou trabalhando no ipython3, aberto no Terminal. Este é o código (em 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))

No entanto, recebo este erro.

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'

Um 'd' é adicionado ao caminho e o diretório não pode ser encontrado. O mesmo acontece com Jupypter QtConsole.

    
por Camilla 27.05.2018 / 10:07

1 resposta

1

os.listdir retorna uma lista de nomes de arquivos. Com o

for file in filename

loop você está iterando sobre as letras nesses nomes de arquivo, e o primeiro nome de arquivo encontrado parece começar com um 'd' . Remova este loop.

Mais tarde no seu código

print(len(f)) 

lançará uma exceção, pois você não pode usar len com um identificador de arquivo. Se você deseja obter o tamanho do arquivo, use os.path.getsize ()

    
por Florian Diesch 27.05.2018 / 10:35