¿Debo pasar la ruta completa de un archivo en otro directorio para abrir ()?

Tengo una carpeta con diez archivos que quiero recorrer. Cuando imprimo el nombre del archivo, mi código funciona bien:

import os
indir = '/home/des/test'
for root, dirs, filenames in os.walk(indir):
    for f in filenames:
        print(f)

Que imprime:

1
2
3
4
5
6
7
8
9
10

Pero si intento abrir el archivo en el bucle, aparece un error de E / S:

import os
indir = '/home/des/test'
for root, dirs, filenames in os.walk(indir):
    for f in filenames:
        log = open(f, 'r')

Traceback (most recent call last):
File "/home/des/my_python_progs/loop_over_dir.py", line 6, in <module>
log = open(f, 'r')
IOError: [Errno 2] No such file or directory: '1'
>>> 

¿Debo pasar la ruta completa del archivo incluso dentro del bucle paraopen() ¿ellos?

Respuestas a la pregunta(5)

Su respuesta a la pregunta