Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    [python] E' possibile uno script che mi tolga gli spazi a capo da un file txt ...

    di questo tipo:

    fileimportato=
    2,14,48,63,77;
    9,33,53,54,60;
    34,55,61,66,89;
    12,45,48,60,71;
    10,25,65,76,85;
    7,11,25,52,73;
    21,24,40,71,78;
    24,49,78,87,88;
    33,45,60,66,70;
    18,22,52,76,83;
    14,18,44,59,64;
    5,19,56,82,83;
    32,35,45,70,88&

    io vorrei trasformare con apposito script in automatico il contenuto di questo file in:

    fileimportato=2,14,48,63,77;9,33,53,54,60;34,55,61 ,66,89;
    12,45,48,60,71;10,25,65,76,85;7,11,25,52,73;21,24, 40,71,78;
    24,49,78,87,88;33,45,60,66,70;18,22,52,76,83;14,18 ,44,59,64;
    5,19,56,82,83;32,35,45,70,88&

    It's possible with PYTHON SCRIPT? Altrimenti si accettano tutte le altre possibili soluzioni per il medesimo risultato..

    Grazie a tutti/e


  2. #2
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #define BASE_BUFF_CAPACITY 80; //lunghezza base del buffer di lettura
    
    int main(int argc,char* argv[])
     {
    	//dichiarazioni
    	int buff_size = BASE_BUFF_CAPACITY;
    	char* buff = (char*)malloc(buff_size);
    	int ch,i = 0;
    	FILE* fp = NULL;
    	
    	//controllo parameri in input al programma
    	if(argc != 2)
    	{
    		printf("Error: wrong parameters number!");
    		return -1;
    	}
    
    	//apertura in lettura del file
        fp = fopen(argv[1], "r");
        if( fp == NULL )
    	{
    		printf("Error: problem while opening the file %s!", argv[1]);
    		return -1;
    	}
    	
    	//lettura in un buffer di caratteri del contenuto del file
    	//escludendo gli accapo ('\n')
    	ch = fgetc(fp);
    	while(ch != EOF)
    	{
    		if(ch != '\n') //saltiamo gli accapo
    		{
    			buff[i] = ch;
    			i++;
    		}
    		//superati gli 80 caratteri estendiamo il buffer
    		if(i == buff_size)
    			buff_size += BASE_BUFF_CAPACITY;
    		buff = (char*)realloc(buff,buff_size);
    		ch = fgetc(fp);
    	}
    	//aggiungiamo il terminatore di fine stringa
    	buff[i] = '\0';
    	
    	//ripertura del file in sola scrittura (cancella il contenuto precedente)
    	fclose(fp);
    	fp = fopen(argv[1], "w");
    	if( fp == NULL )
    	{
    		printf("Error: problem while opening the file %s!", argv[1]);
    		return -1;
    	}
    	
    	//scrittura del buffer sul file
    	for(i =0 ; buff[i] != '\0'; i++)
    		fputc(buff[i],fp);
    	
    	//rilascio risorse di memoria
    	free(buff);
    	return 0;
     }
    Un semplice programmino C, hai solo bisogno di un compilatore come Minggw (o gcc sotto linux) e dovresti ottenere senza problemi l'eseguibile. Poi lo richiami con nomeprog.exe nome_file da prompt.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  3. #3
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  4. #4
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459
    Un po più veloce...

    codice:
    fi = open('nomefile.txt', 'r')
    fo.open('nomefile2.txt', 'w')
    fo.write(fo.read().replace('\n', ''))
    fo.close()
    fi.close()
    Ciao
    Linux user number 403381

    Stop TCPA!

  5. #5
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    L'idea fox82 è muy interessante ma il debug mi segnala un mucchio di errori..

    Traceback (most recent call last):
    File "D:\PERtoglieregliacapo.py", line 2, in ?
    fo.open('nomefile2.txt', 'w')
    AttributeError: 'file' object has no attribute 'open'

    A te il tuo script che hai postato funge?

    GRAZIE COMQUE!

  6. #6
    Originariamente inviato da Fox82
    Un po più veloce...

    codice:
    fi = open('nomefile.txt', 'r')
    fo.open('nomefile2.txt', 'w')
    fo.write(fo.read().replace('\n', ''))
    fo.close()
    fi.close()
    Ciao
    Indubbiamente!Volendo avrei potuto sriverglielo in java, ci avrei messo di meno ed avrei raggiunto una compattezza non lontana dal tuo scripti py. Tuttavia con py e java ci vuole
    il runtime mentre un exe in c una volta compilato e li pronto.Certo se si deve fare una cosa più complessa farlo in c diventa troppo laborioso,ad esempio il problema dello stesso autore di questo post di ordinare un file di interi riga per riga diventava già ababstanza complesso da gestire perchè il c fornisce un numero esiguo di strumenti di base per fare cose comuni come manipolare stringhe o ordinare array
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  7. #7
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    questo compilatore

    Minggw

    Dove lo posso trovare e soprattutto è gratisse?

    Grazie!


  8. #8

    Re: questo compilatore

    Originariamente inviato da freetom
    Minggw

    Dove lo posso trovare e soprattutto è gratisse?

    Grazie!

    E' un porting di gcc (il compilatore classico sotto linux) per windows.Si lo puoi trovare aggratis, è lo stesso usato da dev-c++ o anche MingwSudio, perciò se hai DevC++ hai anche Mingw.Comunque quel codice dovrebbe compilare senza problemi in praticamente qualunque compilatore c,se ne hai uno diverso da mingw usa quello,in ogni caso se ti da errori postameli.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  9. #9
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459

    Re: L'idea fox82 è muy interessante ma il debug mi segnala un mucchio di errori..

    Originariamente inviato da freetom
    Traceback (most recent call last):
    File "D:\PERtoglieregliacapo.py", line 2, in ?
    fo.open('nomefile2.txt', 'w')
    AttributeError: 'file' object has no attribute 'open'

    A te il tuo script che hai postato funge?

    GRAZIE COMQUE!
    Scusa, troppa fretta

    codice:
    fi = open('nomefile.txt', 'r')
    fo = open('nomefile2.txt', 'w')
    fo.write(fo.read().replace('\n', ''))
    fo.close()
    fi.close()
    Linux user number 403381

    Stop TCPA!

  10. #10
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    ancora troppa fretta?

    Traceback (most recent call last):
    File "D:\PERtoglieregliacapo2.py", line 3, in ?
    fo.write(fo.read().replace('\n', ''))
    IOError: [Errno 9] Bad file descriptor




Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.