Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - erickcasita

#1
He estado intentado pasar el proceso de descarga para los audios de Youtube en un hilo diferente utilizando la librería pafy. Con esta librería se puede utilizar un método llamado "mycb" donde es posible obtener los kbs descargados y los totales para establecer una barra de progreso. Aquí les muestro lo que intento hacer mediante la clase QThread

Código (python) [Seleccionar]


from audio import *
from PyQt5.QtWidgets import QApplication, QMainWindow, QDialog,QFileDialog, QMessageBox,QTableWidget,QTableWidgetItem
from PyQt5.QtCore import QThread, pyqtSignal
import getpass, glob, pafy

class DownloadAudio(QThread):
    signal_recvd = pyqtSignal(int)
    signal_total = pyqtSignal(int)
    def download(self, ruta, url):
        ruta = ruta
        url = url
        video = pafy.new(url)
        title = video.title
        duration = video.duration
        dwn = video.getbestaudio()
        dwn.download(filepath=ruta, callback=self.mycb, meta=True)

    def mycb(self,total, recvd, ratio, rate,eta): #Metodo de la libreria Pafy para saber los kbs recibidos y los totales (con este me apoyo para establecer la barra de progreso)
        self.signal_total.emit(total)
        self.signal_recvd.emit(recvd)


class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
    def __init__(self, *args, **kwargs):
        QtWidgets.QMainWindow.__init__(self, *args, **kwargs)
        self.setupUi(self)
        self.setFixedSize(920,700)
        self.txt_ruta.setText("/home/"+getpass.getuser()+"/Música")
        self.tableWidget.setColumnWidth(0, 350)
        self.tableWidget.setColumnWidth(1, 350)
        self.btn_descargar.clicked.connect(self.download_audio)
        self.btn_destino.clicked.connect(self.ruta)
    def download_audio(self):
        ruta = self.txt_ruta.text()
        self.progressBar.setValue(0)
        url = self.txt_url.text()
        video = pafy.new(url)
        title = video.title
        duration = video.duration
        self.tableWidget.setItem(0,0, QTableWidgetItem(title))
        self.tableWidget.setItem(0,1, QTableWidgetItem(duration))
        self.calc = DownloadAudio()
        self.calc.download(ruta,url)
        self.calc.signal_recvd.connect(self.progress)
    def progress(self,value):
        self.progressBar.setValue(value)

    def ruta(self):
        path = os.path.normpath(QFileDialog.getExistingDirectory(self))
        self.txt_ruta.setText(path)                 
if __name__ == '__main__':
    app = QtWidgets.QApplication([])
    window = MainWindow()
    window.show()
    app.exec_()




Con este código el proceso funciona aunque no correctamente ni mucho menos puedo establecer la barra de progreso.
#2
Hola, he estado trabajando en este ejercicio para encontrar si una frase  o palabra es un palíndromo. Esto es mi resultado.. Comenta cuál sería el tuyo para tener un resultado más concreto

Saludos ;-) ;-)
Código (python) [Seleccionar]

def es_palindromo(msj):
   txt=msj.replace(' ','').lower() #Reemplazo  los espacios en blanco por nada  y convierto a minuscula
   if(txt==txt[::-1]):
       print(txt," ","es un palindromo"
#3
Hola, comunidad soy relativamente nuevo en python y me propuse contar las letras de cualquer frase esto es lo que tengo, como soy nuevo no se que más agregarle o que modificarle para que el código bien. Tampoco encuentro un método que me ayude a excluir los signos ¡Saludos! ;D ;D

Código (python) [Seleccionar]

titulo= "Contar las letras de cualquier frase".capitalize() #Variable para el titulo
print (titulo.center(50,"*"))#centro el titulo
frc=(input("Ingresa una frase "))#se solicita la frase
let=len(frc)#saco la logitud original
cont=0 #contador para los espacios
contnum=0 #contador para los numeros
contpuc=0 #contador para los signos
suma=0 #variable para sumar los contadores
for i in range(0,let):
    if (frc[i].isspace()):
        cont+=1
    elif(frc[i].isdigit()):
        contnum+=1
    elif(frc[i] in "?¡¿*,.-_'"): #agrego los signos a discriminar (no se si hay un método)
        contpuc+=1
    suma=cont+contnum+contpuc #sumo los contadores
rpta=let-suma #al final solo lo resto a la longitud original
print("La frase tiene palabras",rpta)
#4

Hola, he estado haciendo este ejercicio para contar las letras de una frase, al parecer funciona bien pero necesito saber que más agregarle o si me falta algo...
Muchas gracias




#include <stdio.h>
#include <string.h>
int main() {
char nomb[100];
int let, cont = 1;
printf("Ingrese una frase\n");
fflush(stdin);
fgets(nomb, 100, stdin); //saco la longitud original
let = strlen(nomb);

for (int i = 0; i < let; i++) {

if (nomb[i] == ' ') {

cont++; //cuento los espacios en blanco

}
}
let = let - cont; // al final simplemente lo resto a la longitud original.
printf("\n La frase tiene  %d palabras", let);

return 0;
}