Profilo di dragonet

Nome dragonet
Indirizzo email n/a
Messaggi6
  • Re: iterazione di un array che non parte da zero
    Forum >> Principianti
    Il problema della lettura dalla riga sbagliata in realtà non esiste: si trattava solamente di un problema di visualizzazione della finestra Dos. Mi spiace aver sollevato un polverone per nulla...
    Quello che invece non riesco ancora a fare è passare il comando copy alla shell Dos, usando come parametro il numero del file da copiare. Incollo il codice:





    import os




    file = open('mio file.txt','r')

    fileDaCopiare = file.readlines()

    for indice in fileDaCopiare:

    print(indice)

    comando="copy (indice)+txt cartella destinazione"

    p = os.popen(comando)



    file.close()





    Per quanto riguarda la domanda relativa all'indice, mi riferivo ad un array associativo, quello che dovrebbe essere diventato(?) la variabile fileDa Copiare dopo aver passato l'output ottenuto con file.readlines().
  • Re: iterazione di un array che non parte da zero
    Forum >> Principianti
    @Daniele: con il tuo metodo la lettura del file parte dalla riga 378!!!

    Sai spiegarmi il perché? Inoltre, per quale motivo la lettura delle righe del file all'interno del ciclo sarebbe un errore?

    Questo (in linguaggio C) a me funziona:
    fp=fopen(par,"r"); //nome file da leggere passato da riga di comando
    while(!feof(fp))
    {
    fgets(buffer,DIM,fp);
    //printf("file numero, %s",buffer);

    anche se ho lo stesso problema (lettura del file dalla riga sbagliata), a meno di non diminuire le righe del file (fino a 200 funziona correttamente). Con Python invece anche diminuendo le righe ho lo stesso problema.

    C'è un'altra cosa che non capisco: in Python non si usa un indice per leggere un array?

    Sono un tantino confuso...


    --- Ultima modifica di Daniele aka Palmux in data 2015-04-18 12:45:51 ---
  • Re: iterazione di un array che non parte da zero
    Forum >> Principianti
    @Daniele







    ho provato con il metodo che mi hai indicato:

















    file = open('elencoNumeri.txt','r')









    i=0









    while i < 10:



    riga=file.read()



    print(riga)



    i = i + 1











    ma la lettura dei numeri del file parte dalla riga 233...


    --- Ultima modifica di C8E in data 2015-03-30 16:14:03 ---
  • Re: iterazione di un array che non parte da zero
    Forum >> Principianti
    Ti allego il file, io non so più che pesci pigliare...
  • Re: iterazione di un array che non parte da zero
    Forum >> Principianti
    Ciao, i dati contenuti nel file sono semplicemente dei numeri:




    18624

    18625

    18627

    18628

    18629

    18630

    18631





    ecc. sono 521 numeri. Come ho scritto, se provo a leggere l'array (o forse si tratta di una lista? Come ho specificato sono nuovo di Python) con un ciclo, la lettura parte circa dalla riga 127. Non riesco assolutamente a capire il perché.. Ho provato sia con un ciclo while che con un for. Se riuscissi ad aiutarmi mi faresti un grande favore.


    --- Ultima modifica di dragonet in data 2015-03-29 18:46:37 ---
  • iterazione di un array che non parte da zero
    Forum >> Principianti
    Ciao a tutti, ho appena cominciato a scoprire questo interessante linguaggio (la mia esperienza è in prevalenza su C) e ho un problema. Devo leggere un file di testo una riga alla volta, copiarlo in un array ed eliminare il carattere di a capo \n. Fino a qui tutto bene:

    file = open('mioElenco.txt','r')

    numeriDaCopiare=file.readlines()

    for i in range(0, len(numeriDaCopiare)):

    numeriDaCopiare = int(numeriDaCopiare.strip("\n"))

    numeriCopiati=numeriDaCopiare

    file.close()

    se provo a stampare il contenuto dell'array, quindi print (numeriCopiati) vedo tutti i numeri presenti nel file di partenza.

    Il problema è che se provo a scorrere l'array con un ciclo for:

    for i in range(0,len(numeriCopiati),1):

    print (numeriCopiati)

    la lettura dei valori inizia circa dalla posizione 125 (in totale sono 521 elementi)

    Per quale motivo succede questo? Ho provato anche con un ciclo while, ma con lo stesso risultato, eppure se provo a stampare una riga per volta, indicando la posizione dell'array, es. print(numeriCopiati0), print(numeriCopiati1) ecc. i valori stampanti sono corretti.

    Successivamente vorrei lanciare in DOS un comando copy, passando come parametro in origine l'elenco di numeri contenuti nell'array. E' possibile fare questo con Python?

    Ringrazio in anticipo per l'aiuto.


    --- Ultima modifica di Daniele aka Palmux in data 2015-03-29 14:02:21 ---