Citirea cuvintelor dintr-un fișier și introducerea lor într-o listă (Programare, Python, String, Fișier, Bucle, Python 3.X)

utilizator2918356 a intrebat.

Î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(
)

1 răspunsuri
jDo

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']
>>> 

Comentarii

  • Aș dori să pun fiecare cuvânt în lista imensă ca element propriu, nu pe fiecare linie, dacă este posibil, de exemplu, ar fi [‘cuvânt’,’altul’, ‘cuvânt’, ‘etc’] –  > Por utilizator2918356.
  • @user2918356 Nu sunt sigur că am înțeles. Cele două exemple pe care le-am postat vor separa liniile și vor pune fiecare cuvânt în elementul 1-dimensional huge_list. Ați încercat să le rulați? –  > Por jDo.
  • @user2918356 ['word','another', 'word', 'etc'] este exact cum arată rezultatul. –  > Por jDo.