Convertir un code c vers un code python
Fermé
Bonjour, étant étudiant , je cherche à traduire un code écrit en c vers python. Existe t'il des outils pour cela ou des manipulations ? les quelques recherches internet que j'ai faites ne m'ont rien apportées et je précise que je ne maitrise pas du tout le langage c . merci de votre réponse
A voir également:
- C to python
- Qwerty to azerty - Guide
- Citizen code python avis - Accueil - Outils
- Python est introuvable. exúcutez sans argument pour procúder ó l - Forum Python
- Wfp to mp4 - Forum Accessoires & objets connectés
- Welcome to nginx! ✓ - Forum Applis & Sites
3 réponses
Merci pour la réponse et la documentation. Voici le code en lui-même qui sert au traitement de fichier audio.
#include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <math.h> struct wavfile //définit la structure de l entete d un wave { char id[4]; // doit contenir "RIFF" int totallength; // taille totale du fichier moins 8 bytes char wavefmt[8]; // doit etre "WAVEfmt " int format; // 16 pour le format PCM short pcm; // 1 for PCM format short channels; // nombre de channels int frequency; // frequence d echantillonage int bytes_per_second; // nombre de bytes par secondes short bytes_by_capture; short bits_per_sample; // nombre de bytes par echantillon char data[4]; // doit contenir "data" int bytes_in_data; // nombre de bytes de la partie data }; int main(int argc, char *argv[]) { int i=0; int nbech=0; //nombre d echantillons extraits du fichier audio char fichieraudio[100]; char fichierdat[100]; float filtre_freq, filtre_large; /*---------------------selection du fichier audio-------------------------------*/ printf ("entrer le nom du fichier audio a extraire en data :\n"); scanf("%s", fichieraudio); printf ("nom du fichier : %s\n", fichieraudio); sprintf (fichierdat,"%s.dat", fichieraudio); /*--------------fin de selection du fichier audio-------------------------------*/ /*---------------------ouverture du wave----------------------------------------*/ FILE *wav = fopen(fichieraudio,"rb"); //ouverture du fichier wave struct wavfile header; //creation du header if ( wav == NULL ) { printf("\nne peut pas ouvrir le fichier demande, verifier le nom\n"); printf("ne pas oublier l'extention .wav\n"); exit(1); } /*---------------------fin de ouverture du wave---------------------------------*/ /*---------------------lecture de l entete et enregistrement dans header--------*/ //initialise le header par l'entete du fichier wave //verifie que le fichier posséde un entete compatible if ( fread(&header,sizeof(header),1,wav) < 1 ) { printf("\nne peut pas lire le header\n"); exit(1); } if ( header.id[0] != 'R'|| header.id[1] != 'I'|| header.id[2] != 'F'|| header.id[3] != 'F' ) { printf("\nerreur le fichier n'est pas un format wave valide\n"); exit(1); } if (header.channels!=1) { printf("\nerreur : le fichier n'est pas mono\n"); exit(1); } /*----------------fin de lecture de l entete et enregistrement dans header-------*/ /*-------------------------determiner la taille des tableaux---------------------*/ nbech=(header.bytes_in_data/header.bytes_by_capture); /*------------------fin de determiner la taille des tableaux---------------------*/ /*---------------------creation des tableaux dynamiques--------------------------*/ float *data=NULL; //tableau de l'onde temporelle data=malloc( (nbech) * sizeof(float)); if (data == NULL) { exit(0); } /*---------------------fin de creation des tableaux dynamiques-------------------*/ /*---------------------initialisation des tableaux dynamiques--------------------*/ for(i=0; i<nbech; i++) { data[i]=0; } /*---------------------fin de initialisation des tableaux dynamiques-------------*/ /*---------------------remplissage du tableau tab avec les echantillons----------*/ i=0; short value=0; // FILE *dat=fopen("son.dat","w"); //fichier data des echantillons // FILE *dat2=fopen("fabs_son.dat","w");//fichier.dat des valeurs absolues des echantillons FILE *dat3=fopen(fichierdat,"w"); while( fread(&value,(header.bits_per_sample)/8,1,wav) ) { //lecture des echantillons et enregistrement dans le tableau data[i]=value; i++; } printf("\nnombre d'echantillons lus : %d\n",i); printf("nombre de valeurs sauvegardees %d\n",i); for (i=0; i<nbech; i++) { // fprintf(dat,"%lf %lf\n", data[i], (1.*i/header.frequency)); //permet de sauvegarder le tableau dans le fichier data.dat pour vérification manuelle des données // fprintf(dat2,"%lf %lf\n", fabs(data[i]), (1.*i/header.frequency)); fprintf(dat3,"%lf %lf\n", 20*log10(fabs(data[i])), (1.*i/header.frequency)); } /*-----------------fin de remplissage du tableau avec les echantillons-----------*/ /*---------------------liberation de la memoire----------------------------------*/ //liberation de la ram des malloc free(data); data = NULL; fclose(wav); // fclose(dat); // fclose(dat2); fclose(dat3); /*---------------------fin de liberation de la memoire---------------------------*/ return 0; }
5 juin 2015 à 23:06
Lecture du header d'un fichier : https://blog.theroyweb.com/extracting-wav-file-header-information-using-a-python-script
(Sachant que ce programme de près de 50 lignes remplace la ligne où tu extrais le header).