W porównaniu z Javą (w łańcuchu) zrobiłbyś coś takiego "First Line\r\nSecond Line"
.
Jak więc zrobiłbyś to w Pythonie, aby zapisać wiele linii do zwykłego pliku?
python
line-breaks
file-writing
FabianCook
źródło
źródło
print
działa jakSystem.out.println
w Javie i automatycznie dodaje nowy wiersz po tekście, prawda?print
Oświadczenie w Pythonie może być również używany do zapisu plików (dane różnią się między Pythona 2.x oraz 3.x Pythona, więc sprawdzić docs odniesienia dla swojej wersji).print
w Python 2.x -print
w Python 3.xOdpowiedzi:
To zależy od tego, jak poprawny chcesz być.
\n
zwykle wykona zadanie. Jeśli naprawdę chcesz to zrobić dobrze, poszukaj znaku nowej linii wos
pakiecie . (To się nazywalinesep
.)Uwaga: podczas pisania do plików przy użyciu API Python nie używaj
os.linesep
. Po prostu użyj\n
; Python automatycznie tłumaczy to na znak nowej linii dla twojej platformy.źródło
"\r\n"
. Oznacza to, żeos.linesep
tak będzie"\r\n"
. Kiedy piszesz do pliku w trybie tekstowym, dokonuje on tłumaczenia nowego wiersza podczas pisania; to znaczy, każde"\n"
z danych wyjściowych zostanie przetłumaczone na"\r\n"
plik wynikowy. Możesz zobaczyć, jak to jest problem, jeśli tekst, który piszesz, już zawiera"\r\n"
sekwencje: wynik będzie"\r\r\n"
na końcu każdej linii. Przynajmniej zakładam, że tak naprawdę nie próbowałem.os.linesep
propozycję, nie? To nie byłby duży dramat, a duma autora nie ucierpiałaby zbytnio, jak sądzęlinesep
istnieje i istnieje, abyś mógł dowiedzieć się, czym jest separator linii systemowych.linesep
wciąż może być przydatny.Nowy znak linii to
\n
. Jest używany wewnątrz ciągu.Przykład:
gdzie
\n
jest znak nowej linii.Dałoby to wynik:
Jeśli używasz Python 2, nie używasz nawiasów w funkcji drukowania.
źródło
Możesz pisać nowe wiersze osobno lub w jednym ciągu, co jest łatwiejsze.
Przykład 1
Wejście
Możesz napisać „\ n” osobno:
Wynik
Przykład 2
Wejście
Jak zauważyli inni w poprzednich odpowiedziach, umieść \ n w odpowiednich punktach łańcucha:
Wynik
źródło
Jeśli wpisujesz kilka wierszy tekstu jednocześnie, uważam, że jest to najbardziej czytelny format.
\ Na końcu każdej linii ucieka od nowej linii (co spowodowałoby błąd).
źródło
W Pythonie możesz po prostu użyć znaku nowej linii, tj
\n
źródło
Najprostsze rozwiązanie
Jeśli zadzwonisz tylko
print
bez argumentów, wyświetli pusty wiersz.Możesz przesłać dane wyjściowe do pliku takiego jak ten (biorąc pod uwagę twój przykład):
Jest nie tylko niezależny od systemu operacyjnego (nawet bez konieczności korzystania z
os
pakietu), ale także bardziej czytelny niż wstawianie\n
ciągów.Wyjaśnienie
print()
Funkcja ma opcjonalny argument wyrażenia koniec sznurka, o nazwieend
, która domyślnie znak nowej linii jest system operacyjny, na przykład.\n
. Tak więc, kiedy dzwoniszprint('hello')
, Python drukuje'hello' + '\n'
. Co oznacza, że gdy dzwoniszprint
bez żadnych argumentów, w rzeczywistości jest drukowany'' + '\n'
, co powoduje powstanie nowej linii.Alternatywny
Użyj ciągów wieloliniowych.
źródło
Niezależny od platformy wyłącznik linii: Linux, Windows i IOS
Wynik:
źródło
W ten sam sposób
'\n'
, choć prawdopodobnie nie potrzebujesz'\r'
. Czy istnieje powód, dla którego masz go w swojej wersji Java? Jeśli potrzebujesz / potrzebujesz, możesz używać go w ten sam sposób również w Pythonie.źródło
\r
jest powrót karetki, kiedy otrzymasz właściwość systemową dla nowego wiersza, pojawia się jako\r\n
\n
jest to jedyny znak nowej linii.\n
.\ n - działa proste wstawianie znaków nowej linii:
źródło
Większość znaków zmiany znaczenia w literałach łańcuchowych z języka Java jest również poprawna w języku Python, takich jak „\ r” i „\ n”.
źródło
Jak wspomniano w innych odpowiedziach: „Nowy znak linii to \ n. Jest on używany w ciągu znaków”.
Odkryłem, że najprostszym i najbardziej czytelnym sposobem jest użycie funkcji „format”, używając nl jako nazwy nowego wiersza, i rozbicie ciąg, który chcesz wydrukować, dokładnie do formatu, w którym chcesz go wydrukować:
To da wynik:
W ten sposób wykonuje zadanie, a także zapewnia wysoką czytelność kodu :)
źródło
\ n oddziela wiersze ciągu. W poniższym przykładzie zapisuję rekordy w pętli. Każdy rekord jest oddzielony
\n
.źródło
Warto zauważyć, że podczas sprawdzania łańcucha przy użyciu interaktywnej powłoki pytona lub notatnika Jupyter,
\n
i inne ciągi odwrócone, takie jak,\t
są renderowane dosłownie :Nowe linie, tabulatory i inne specjalne znaki niedrukowane są renderowane jako białe znaki tylko po wydrukowaniu lub zapisaniu w pliku:
źródło