Profilo di LeandroPaoloDP

Nome LeandroPaoloDP
Indirizzo email n/a
Messaggi1
  • Re: Ciao! Chi mi aiuta?
    Forum >> Programmazione Python >> Scripting
    Ciao, se sei proprio ai primi passi forse dovresti iniziare con script più semplici di questo, comunque provo a darti tutte le indicazioni per procedere.
    Per prima cosa devi aprire un file in scrittura, se non sai come fare in Python e sufficiente un'istruzione open

    quindi devi scrivere:

    open(file, "w")

    dove file sarà il nome del tuo file, oppure il path ed il nome (il nome o il path è una stringa quindi va tra apici singoli o doppi) ed il secondo parametro ("w") indica che vuoi aprirlo in scrittura.

    Però, dato che vuoi modificarlo, ed aprendolo in scrittura lo sovrascriveresti, dovresti aprire il file di partenza in lettura ("r") e crearne uno nuovo su cui scrivere le modifiche.

    Quindi dovresti scrivere qualcosa del genere:

    fileLetto = open("filePartenza.txt", "r")
    fileScritto = open("fileArrivo.txt", "w")

    Così ti rimangono i due riferimenti ai due file con cui puoi fare le operazioni che ti servono.

    Se volessi fare quello che hai detto su un file di testo ti basterebbe aggiungere queste righe:

    for linea in fileLetto:
    nuovaLinea = linea.replace("o", "0")
    fileScritto.write(nuovaLinea)

    ed alla fine chiudere entrambi i file:

    fileScritto.close()
    fileLetto.close()

    Dato che vuoi fare delle operazioni su un file binario, alle aperture in lettura e scrittura devi aggiungere b. Quindi diventano rispettivamente "rb" e "wb".

    Inoltre una volta aperti in binario quello che ottieni non sono più stringhe, ma oggetti di tipo bytes

    Quella che segue potrebbe essere la struttura da cui partire:

    fileLetto = open("filePartenza.txt", "rb")
    fileScritto = open("fileArrivo.txt", "wb")

    for linea in fileLetto:
    lineaBytes = bytes(linea)
    print(linea)
    nuovaLinea = bytearray()
    for b in lineaBytes:
    print(hex(b))
    if(b == 0xa):
    b = 0x20

    nuovaLinea.append(b)
    print(nuovaLinea)
    fileScritto.write(nuovaLinea)

    fileScritto.close()
    fileLetto.close()

    Apriamo gli stessi due file di prima, ma questa volta invece di aprirli come testo li apriamo come file binari

    leggiamo una riga del file di partenza e su questa leggiamo ogni singolo byte, quando trovi quello che vuoi cambiare lo sostituisci con quello che vuoi,

    nell'esempio sopra sostituisco il ritorno a capo (su unix) con uno spazio, per cui ottengo un file con lo stesso contenuto di quello di partenza, ma tutto su una riga.