Hola Angel Lis, estoy leyendo sobre *pathlib* y teniendo en cuenta lo que decís, me conviene usar éste por el hecho de que me olvido y dejo de lado el tema sobre el funcionamiento y rendimiento a nivel sistema, y utilizo solo lo que necesito. Respecto a with, lo había visto entre todas las búsquedas que hice y algunos lo ponían de ejemplo, pero la verdad no le di una chance. Lo voy a implementar a ver que tal me va. Muchas gracias
El vie., 19 jun. 2020 a las 5:44, Angel Lis (<anlis...@gmail.com>) escribió: > Hola Veronica y bienvenida, > sobre tu cuestión, fchdir vs chdir se diferencian en que chdir cambia en > directorio de trabajo al que tu le pases con un string, > en cambio fchdir le pasas un descriptor de fichero, o sea que tienes que > hacer un open del directorio y luego gestionar tu el close del descrito. > > A nivel de performance con esas funciones no te preocupes, no creo que sea > algo que ejecutes constantemente. > > De todas maneras, si lo que quieres para trabajar con paths es > recomendable intentar usar la pathlib ( > https://docs.python.org/3.8/library/pathlib.html ) que viene por defecto > en python3, ya que te abstrae del sistema de ficheros (vamos que funciona > igual en windows, linux, etc). > > Échale un ojo si te apetece. > > sobre tu función, te estás dejando un descriptor de fichero abierto, y eso > generará errores. Si es posible intenta acostumbrarte a usar el idiomatic > with para trabajar con descriptores, si puedes, claro. > > Para tu función podría quedar así: > > def cambio_ruta(self, cambio, cambiado): > cambio = input("\nIngrese ruta a la que quiere cambiar: ") > with os.open(cambio, os.O_RDONLY) as cambiado: > os.fchdir(fd=cambiado) > contador = 0 > for elemento in os.scandir(cambio): > contador = contador + 1 > print(elemento) > print(f"\nTotal de elementos: {contador}") > # al salir del scope de with, "ejecuta" cambiado.close() automagicamente. > return "\nDirectorio actual de trabajo: {}".format(os.getcwd()) > > > > usando el with, cuando sale del scope, ejecuta el close() de "cambiado" > > > Espero haberte ayudado, > > un saludo! > Angel Lis ^ aka Liso > > > El jue., 18 jun. 2020 a las 9:46, Lemarchand Barker (< > lemarchand8...@gmail.com>) escribió: > >> Hola, me llamo Verónica y después de muchos años estoy retomando >> nuevamente python. Estoy en Python 3.8. >> Actualmente estoy usando Ubuntu 20.04 - Gnome, ide PyCharm 2020.1.2. >> Como bien mencioné, estoy retomando y cuando abandoné el lenguaje, >> tampoco es que estaba muy avanzada pero la diferencia es que ahora estoy >> más decidida. Quiero aprender porque es un lenguaje que para mi es fácil y >> lo puedo entender. >> Mi consulta es respecto a lo siguiente. Si bien hay muchos reproductores >> multimedia para elegir yo quiero hacer uno similar al moc (reproductor de >> mp3 para consola) pero de video. >> Lo que necesito prácticamente y para ser puntual es algo que me permita >> ejecutar el video en cuestión. >> Hasta ahora lo que tengo hecho es; todo por consola: >> 1- Que la aplicación te muestre la ruta actual en la que estás: >> *os.getcwd()* >> 2- Que te permita ingresar la ruta a la cual querés ir: >> >> def cambio_ruta(self, cambio, cambiado): >> cambio = input("\nIngrese ruta a la que quiere cambiar: ") >> cambiado = os.open(cambio, os.O_RDONLY) >> os.fchdir(fd=cambiado) >> contador = 0 >> for elemento in os.scandir(cambio): >> contador = contador + 1 >> print(elemento) >> print(f"\nTotal de elementos: {contador}") >> return "\nDirectorio actual de trabajo: {}".format(os.getcwd()) >> >> Buscando como hacer para cambiar de ruta me encontré con el planteo de >> mucha gente que quería saber cuál era la diferencia entre *chdir()* y >> *fchdir()*. Si bien no me quedó muy en claro la diferencia la mayoría >> coincidía en que fchdir es el que tiene mejor rendimiento. Lo mismo me pasó >> con la opción *scandir()*, que de todas las opciones era la que mejor >> funcionaba también respecto a rendimiento. >> Todo este código es para ver si funcionaba, y logro cambiarme cuando >> ingreso la ruta, e incluso puedo ver el contenido de la misma pero mi >> problema viene cuando quiero ejecutar el archivo de video (mp4). >> Todo lo que encontraba era con entorno gráfico como qt, tkinter, cv y no >> es eso lo que necesito. >> Encontré algo similar pero que reproduce mp3 que es lo que voy a probar >> más tarde y lo encontré acá: >> Probando pydub para convertir y reproducir audio >> <https://www.elarraydejota.com/probando-pydub-para-convertir-y-reproducir-audio/> >> Eso es todo, y pido disculpas por mi código, seguramente se lo puede >> pulir más para que quede mucho mejor, y esa es la idea más adelante. >> Muchas gracias y espero me puedan ayudar. >> Saludos desde Argentina >> _______________________________________________ >> Python-es mailing list >> Python-es@python.org >> https://mail.python.org/mailman/listinfo/python-es >> > > > -- > -- > Àngel Lis. > _______________________________________________ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es >
_______________________________________________ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es