12
votes

Comment enlever ^ m

Comment puis-je supprimer le caractère ^ m à partir d'un fichier texte (à la fin de la ligne) dans un script python?

J'ai procédé ce qui suit, et il y a ^ m à chaque rupture de ligne. xxx


3 commentaires

Pouvez-vous poster plus de votre code ?. Ne savez pas où vient ^ m. Nouveau caractère de ligne marque et "\ n" pas "^ m" Remeber to Fermer "File.Close ()" "Don Utilisez le fichier est un mot réservé dans Python Utilisez My_File ou quelque chose.


@Snippsat ^ m est l'évacuation du personnage terminal qui est écrit comme '\ n' en syntaxe C


@ Effectué à votre droit - je pensais au vieux jours où si vous avez tapé CTRL + M, vous obtenez une nouvelle ligne, mais c'est parce que c'est le retour de la chariot n'est pas nouvelle ligne


6 Réponses :


9
votes

Si vous écrivez le fichier, vous devez spécifier ouvert (nom de fichier, "wb") . De cette façon, vous écrivez en mode binaire et Python ne tentera pas de déterminer les bonnes lignes de nouvelles lignes pour le système que vous êtes activé.


1 commentaires

Merci de votre réponse, mais j'essaie d'écrire "quelque chose" à "Fichier" et il semble que "Universal Newline Mode" ne peut être utilisé qu'avec "Ru", si je ne me trompe pas. Cela ne fonctionne pas pour moi, de toute façon.



6
votes

Python peut ouvrir un fichier en mode binaire ou en mode texte. Le texte est la valeur par défaut, donc un mode de "w" signifie écrire en mode texte. En mode texte, Python ajustera les terminaisons de ligne pour la plate-forme que vous allez. Cela signifie sur Windows, ce code: xxx

entraînera un fichier texte contenant "hello \ r \ n".

Vous pouvez ouvrir le fichier en mode binaire par Utilisation de "B" dans le mode: xxx

donne dans un fichier texte contenant "hello \ n".


1 commentaires

En fait, que "quelque chose" vient du formulaire HTML Textarea, où je copie et colle "quelque chose". Le script obtient alors la valeur: quelque chose = formulaire ["Quelqu'un"]. Valeur



2
votes

dos2unix fileName.py

Convertir les pauses de la ligne au style UNIX.


0 commentaires

4
votes

string.replace ('\ r', '') a travaillé pour moi.

moche, mais ni r + ni r + b, ni rien d'autre n'a travaillé (pour moi, sûr): (


0 commentaires

1
votes

Pour la portabilité, vous pouvez essayer ce qui suit

import os
file = open(filename, "w")
file.write(something.replace('\r\n', os.linesep))


0 commentaires

-1
votes

Exécuter Autopep8 sur le fichier

> apt-get install python-autopep8

> autopep8 python_file_name > new_python_file_name.py


1 commentaires

Ce n'est pas ce qu'il demande. Cela aurait probablement probablement d'autres effets secondaires; Répondez à la question posée avec des solutions détaillées et de vraies solutions.