Jak usunąć znak ^M
z pliku tekstowego (na końcu wiersza) w skrypcie w języku Python?Jak usunąć^M
Wykonałem następujące czynności i są ^M
dla każdego podziału linii.
file = open(filename, "w")
file.write(something)
Jak usunąć znak ^M
z pliku tekstowego (na końcu wiersza) w skrypcie w języku Python?Jak usunąć^M
Wykonałem następujące czynności i są ^M
dla każdego podziału linii.
file = open(filename, "w")
file.write(something)
Jeśli piszesz plik, należy określić open(filename, "wb")
. W ten sposób będziesz pisać w trybie binarnym, a Python nie będzie próbował określić poprawnych linii nowego systemu, w którym jesteś.
Dziękuję za odpowiedź, ale próbuję napisać "coś" do "pliku" i wygląda na to, że "Uniwersalny tryb nowej linii" może być używany tylko z "rU", jeśli się nie mylę. W każdym razie to nie działa. – DGT
Python może otworzyć plik w trybie binarnym lub w trybie tekstowym. Tekst jest domyślny, więc tryb "w" oznacza zapis w trybie tekstowym. W trybie tekstowym Python dostosuje zakończenia linii dla platformy, na której się znajdujesz. Oznacza to w systemie Windows, ten kod:
f = open("foo.txt", "w")
f.write("Hello\n")
spowoduje pliku tekstowego zawierającego "Hello \ r \ n".
Można otworzyć plik w trybie binarnym za pomocą „B” w trybie:
f = open("foo.txt", "wb")
f.write("Hello\n")
wyniki w pliku tekstowym zawierającym „Hello \ n”.
Właściwie to "coś" pochodzi z textarea formularza HTML, gdzie kopiuję i wklejam "coś". Następnie skrypt otrzymuje wartość: something = form["some_name"].value
–
DGT
dos2unix filename.py
przekonwertować linia łamie do stylu UNIX.
pracował dla mnie string.replace ('\ r', '').
brzydki, ale ani R + ani R + b ani NIC WIĘCEJ pracował (dla mnie, na pewno) :(
Dla przenośności, można wypróbować następujące
import os
file = open(filename, "w")
file.write(something.replace('\r\n', os.linesep))
run autopep8 na plik
> apt-get install python-autopep8
> autopep8 python_file_name > new_python_file_name.py
Nie o to pyta. Prawdopodobnie miałoby to również inne skutki uboczne; odpowiedzieć na zadane pytanie z detalami i prawdziwymi rozwiązaniami. – kevr
można dodawać więcej off kodzie ?. Dont't wiedzieć gdzie^M pochodzi. Nowa postać linia zrobić i "\ n" nie "^ M" Pamiętaj, aby zamknąć "file.close()" Nie używaj pliku jest zastrzeżonym słowem w pythonu użyj my_file lub coś podobnego. – snippsat
@snippsat^M jest znakiem końcowym, który jest zapisany jako '\ n' w składni C. –
@Pete:^M jest '\ r' –