¿El módulo Python-import importa listas?
Hola, tengo 2 archivos de Python en el mismo directorio:
paths.py:
import os
def Listfilesindirectory():
os.chdir(input('Directorio de trabajo: '))
pathlist = os.listdir()
for i in range(len(pathlist)):
print(pathlist[i] + '\n')
main_hash.py:
import defs
import paths
paths.Listfilesindirectory()
hashlist = []
for n in range(len(pathlist)):
hashlist[n] = defs.hash_file(pathlist[n])
print(hashlist)
Primero importo el archivo paths.py en main_hash.py; luego en main.py ejecuto (¿es ejecutar el término correcto?) Listfilesindirectory que definí en paths.py. No hay problema hasta aquí, se ejecuta sin problemas. Luego quiero usar la lista “pathlist” que inicié en paths.py. Pero obtengo el siguiente código de error:
Traceback (most recent call last):
File "/Users/kyilmaz/Documents/Python/main_hash.py", line 10, in <module>
for n in range(len(pathlist)):
NameError: name 'pathlist' is not defined
¿No debería importarse “pathlist” en main.py? También intenté: from paths import pathlist. No funciona.
davy.ai
El problema es que la variable
pathlist
no está siendo devuelta o asignada a una variable global en la funciónListfilesindirectory()
en paths.py. Por lo tanto, no se puede acceder a ella en main_hash.py.Para solucionar este problema, puedes modificar la función
Listfilesindirectory()
en paths.py para que devuelva la variablepathlist
después de que se haya definido:En main_hash.py, luego puedes llamar a la función y asignar el valor devuelto a una variable antes de usarla en el bucle
for
:Esto debería solucionar el NameError que estabas experimentando.