Paras vastaus
Koska se on tyhmää. En voi ajatella tämän -ominaisuuden hyödyllistä sovellusta, ja olen yrittänyt kovasti.
(Katso Romainin vastaus Vakava lähestymistapa ”miksi tarkalleen”, minun täytyy vain sytyttää liekki 🙂 Voin kuitenkin tarjota joitain kiertotapoja)
Miksi se ei hyväksy vielä yhtä parametria (ts. ”loppu”, joka oletuksena kohtaan ”\ n” tai bool-lippu, keepnl = True), jotta voin päättää pitää / muuttaa rivin loppua, jos vain ja jos tarvitsen sitä, ylittää käsitykseni.
Tämä epäjohdonmukainen ”poliittinen päätös” tekee siitä käytännössä käyttökelvoton ja hitaan ja vaikeasti ymmärrettävän sijasta:
lines = [ ln[:-1] for ln in f.readlines() ]
Pidän parempana
lines = f.read().split("\n")
Paljon suoraviivaisempaa silmäni kannalta. Luulen, että on liian myöhäistä muuttaa sitä nyt.
Kyllä, on mahdollista, että muutkin rivinpäätteet riippuvat käyttöjärjestelmästä.
Luulen, että jopa python-standardin libillä on virheitä myös.
Vastaa
Nämä merkit ovat eivät extrat. Ne ovat läsnä tekstitiedostossa. Ne merkitsevät rivien päät.
Tässä on toinen tapa lukea tekstitiedosto, nimeltään sample.txt
, joka havainnollistaa.
>>> 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"]
- Jokainen rivi tulostetussa tuloste päättyy
\n
, koska ne olivat tekstitiedoston riveillä. - Sinun olisi parempi käyttää
with
kun avaat tiedoston, koska tämä rakenne järjestää tiedostojen sulkemisen käytön jälkeen. - Huomasin, että soitit tiedostollesi
file
. Vältä nimien käyttöä, jotka ovat osa Python-kieltä.
Jos haluat koodin, joka poistaa uudet rivit, tässä on yksi vaihtoehto:
>>> 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
Huomautus t hattua käytin rstrip
, joka poistaa välilyönnit vain merkkijonon oikeasta päästä.