Cel mai bun răspuns
Pentru că este o prostie. Nu mă pot gândi la o aplicație utilă a acestei „ caracteristică și am încercat din greu.
(Vezi răspunsul lui Romain pentru o abordare serioasă cu privire la „de ce anume”, trebuie doar să aprind 🙂 Totuși, vă pot oferi unele soluții)
De ce nu acceptă încă un parametru (adică „sfârșitul”, care implicit la „\ n”, sau un steag bool, keepnl = True), astfel încât să pot alege să păstrez / modific finalul de linie, dacă și numai dacă am nevoie de unul, depășește înțelegerea mea.
„decizia de politică” neintuitivă o face practic inutilizabilă și, în loc de cea lentă și dificil de înțeles:
lines = [ ln[:-1] for ln in f.readlines() ]
De obicei prefer
lines = f.read().split("\n")
Mult mai direct pentru ochii mei. Bănuiesc că este prea târziu pentru a-l schimba acum.
Da, există posibilitatea altor terminații de linie, în funcție de sistemul de operare.
Bănuiesc că și libs-urile standard Python au defectele lor. , de asemenea.
Răspuns
Aceste caractere sunt nu extras. Acestea sunt prezente în fișierul text. Marcează capetele liniilor.
Iată un alt mod de a citi un fișier text, numit sample.txt
, care ilustrează.
>>> with open("sample.txt") as sample:
... contents = sample.readlines()
... print(contents)
...
["This is line number 1\n", "This is line number 2\n", "This is line number 3\n", "This is line number 4\n", "This is line number 5\n", "This is line number 6\n", "This is line number 7\n", "This is line number 8\n", "This is line number 9\n", "This is line number 10\n", "This is line number 11\n", "This is line number 12\n", "This is line number 13\n", "This is line number 14\n", "This is line number 15\n", "This is line number 16\n", "This is line number 17\n", "This is line number 18\n", "This is line number 19\n", "This is line number 20\n"]
- Fiecare linie din tipărit ieșirea se termină cu
\n
deoarece acestea erau în rândurile din fișierul text. - Ar fi mai bine să folosiți
with
când deschideți un fișier deoarece acest construct aranjează închiderea fișierelor după utilizare. - Observ că ați chemat fișierul dvs.
file
. Ar trebui să evitați să folosiți nume care fac parte din limbajul Python.
Dacă doriți cod care elimină liniile noi, iată o opțiune:
>>> with open("sample.txt") as sample:
... for line in sample:
... print(line.rstrip())
...
This is line number 1
This is line number 2
This is line number 3
This is line number 4
This is line number 5
This is line number 6
This is line number 7
This is line number 8
This is line number 9
This is line number 10
This is line number 11
This is line number 12
This is line number 13
This is line number 14
This is line number 15
This is line number 16
This is line number 17
This is line number 18
This is line number 19
This is line number 20
Notă t pălărie am folosit rstrip
care elimină caracterele de spațiu alb doar de la capătul drept al unui șir.