În esență, am un fișier uriaș și tot ce conține fișierul sunt mai multe cuvinte pe linie, fiecare separat de un spațiu. Cam așa ceva:
WORD WORD WORD WORD
ANOTHER
WORD SCRABBLE BLAH
YES NO
Ceea ce vreau să fac este să pun toate cuvintele din fișier într-o listă imensă, am încercat să folosesc split, dar nu a ținut cont de noile linii(
)
Citirea prin for line in f
splits on newline și este eficient din punct de vedere al memoriei (citește câte o linie pe rând) dar să pui totul într-o listă uriașă nu este. Oricum, dacă insiști:
huge_list = []
with open(huge_file, "r") as f:
for line in f:
huge_list.extend(line.split())
Pentru a citi întregul fișier în memorie ca un șir de caractere, utilizați f.read()
în schimb:
huge_list = []
with open(huge_file, "r") as f:
huge_list = f.read().split()
Fișier de intrare (cuvinte separate prin spații și linii noi):
WORD WORD WORD WORD
ANOTHER
WORD SCRABBLE BLAH
YES NO
Ieșire din ambele exemple:
>>> huge_list
['WORD', 'WORD', 'WORD', 'WORD', 'ANOTHER', 'WORD', 'SCRABBLE', 'BLAH', 'YES', 'NO']
>>>
huge_list
. Ați încercat să le rulați? – > Por jDo.['word','another', 'word', 'etc']
este exact cum arată rezultatul. – > Por jDo.