Come posso rimuovere il carattere ^M
da un file di testo (alla fine della riga) in uno script Python?Come rimuovere^M
Ho fatto quanto segue, e ci sono ^M
ad ogni interruzione di linea.
file = open(filename, "w")
file.write(something)
Come posso rimuovere il carattere ^M
da un file di testo (alla fine della riga) in uno script Python?Come rimuovere^M
Ho fatto quanto segue, e ci sono ^M
ad ogni interruzione di linea.
file = open(filename, "w")
file.write(something)
Se si scrive il file, è necessario specificare open(filename, "wb")
. In questo modo, starai scrivendo in modalità binaria, e Python non tenterà di determinare la nuova riga corretta per il sistema in cui ti trovi.
Grazie per la tua risposta, ma sto cercando di scrivere 'qualcosa' su 'file' e sembra che 'Universal newline mode' possa essere usato con 'rU', se non sbaglio. Comunque non funziona per me. – DGT
Python può aprire un file in modalità binaria o in modalità testo. Il testo è l'impostazione predefinita, quindi una modalità "w" indica la scrittura in modalità testo. In modalità testo, Python regolerà le terminazioni di linea per la piattaforma su cui ti trovi. Questo significa su Windows, questo codice:
f = open("foo.txt", "w")
f.write("Hello\n")
genererà un file di testo contenente "Hello \ r \ n".
È possibile aprire il file in modalità binaria utilizzando "b" nella modalità:
f = open("foo.txt", "wb")
f.write("Hello\n")
risultati in un file di testo contenente "Ciao \ n".
In realtà, quel "qualcosa" deriva da textarea in formato html, dove io copio e incollo "qualcosa". Lo script ottiene quindi il valore: something = form["some_name"].value
–
DGT
dos2unix filename.py
per convertire le interruzioni di riga per stile UNIX.
string.replace ('\ r', '') ha funzionato per me.
Brutto, ma non r + né r + b né NIENT'ALTRO lavorato (per me, certo) :(
Per la portabilità, si può provare il seguente autopep8
import os
file = open(filename, "w")
file.write(something.replace('\r\n', os.linesep))
corsa sul file
> apt-get install python-autopep8
> autopep8 python_file_name > new_python_file_name.py
Questo non è quello che sta chiedendo. Questo probabilmente avrebbe anche altri effetti collaterali; rispondi alla domanda posta con dettagli e soluzioni reali. – kevr
potete inserire più fuori il codice ?. Dont't sa dove^M viene. nuova linea carattere fare e "\ n" non "^ M" Ricorda di chiudere "file.close()" Non usare file è una parola riservata in python usa my_file o qualcosa del genere. – snippsat
@snippsat^M è l'escape di carattere terminale che è scritto come '\ n' nella sintassi C –
@Pete:^M è '\ r' –