[Python-es] [Presentación] y [Consulta]

Angel Lis anlismon en gmail.com
Vie Jun 19 04:42:58 EDT 2020


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 (<
lemarchand8679 en 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 en python.org
> https://mail.python.org/mailman/listinfo/python-es
>


-- 
--
Àngel Lis.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20200619/3633e6f7/attachment.html>


Más información sobre la lista de distribución Python-es