Convertir un code c vers un code python
Inglorious
-
Utilisateur anonyme -
Utilisateur anonyme -
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
- Wfp to mp4 - Forum Accessoires & objets connectés
- Press del to enter setup ✓ - Forum Windows
- Your device ran into a problem and needs to restart - Forum Windows 10
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;
}
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).