2010-02-21 20 views
5

Sto cercando di analizzare un file di testo che contiene un numero variabile di parole e numeri per riga, in questo modo:Delimiti di file di Ruby IO?

foo 4.500 bar 3.00 
1.3 3 foo bar 

Come posso leggere il file delimitato da spazi invece di a capo? C'è un modo in cui posso impostare il metodo File("file.txt").foreach per utilizzare spazi anziché delimitatori come delimitatore?

risposta

3

È possibile utilizzare

open('file.txt').read.split.each 

per darvi un iteratore nello spazio (o nuova riga) separati parole.

3

File.open ("file.txt"). Read.split (" ") .Ogni

3

La risposta accettata corrisponderà al file slurp, che può essere un problema con file di testo di grandi dimensioni.

Una soluzione migliore è IO.foreach. E 'idiomatica e sarà in streaming il file char da char:

File.foreach(filename," ") {|string| puts string} 

Esempio di file contenente "this is an example" risultati con

"this" 
"is" 
"an" 
"example" 
Problemi correlati