Ho provato a creare un array da un file di testo. Ho visto in precedenza che aveva NumPy un metodo loadtxt
, così ho provato, ma aggiungo qualche personaggio spazzatura prima di ogni fila ...carattere 'b' aggiunto quando si utilizza numpy loadtxt
# my txt file
.--``--.
.--` `--.
| |
| |
`--. .--`
`--..--`
# my python v3.4 program
import numpy as np
f = open('tile', 'r')
a = np.loadtxt(f, dtype=str, delimiter='\n')
print(a)
# my print output
["b' .--``--. '"
"b'.--` `--.'"
"b'| |'"
"b'| |'"
"b'`--. .--`'"
"b' `--..--` '"]
Quali sono questi 'b' e le doppie virgolette? E da dove vengono? Ho provato una soluzione scelta da internet, come aprire il file con i codec, cambiare il dtype con 'S20', 'S11' e molte altre cose che non funzionano ... Quello che mi aspetto è una serie di stringhe Unicode che assomigliano a questo:
[[' .--``--. ']
['.--` `--.']
['| |']
['| |']
['`--. .--`']
[' `--..--` ']]
Info: sto usando Python 3.4 e numpy dal debian repository stabile
ho già controllare questa domanda prima, e, OK !, b è per byte, ma perché è _inside_ una stringa doppia citazione? Devo riutilizzare questo array in seguito per sostituire alcuni caratteri in un altro array, secondo un indice. Quindi se ho un b e 2 citazioni semplici extra, si romperà il programma successivo. – krshk
Perché stai usando 'loadtxt' per caricare un file del genere? 'loadtxt' è progettato per colonne di dati separate da virgole o qualche altro delimitatore. Si potrebbe leggere facilmente quel file con Python puro; per esempio. qualcosa come 'con open ('tile') come f: a = [line.strip ('\ n') per la riga in f.readlines() se non line.startswith ('#')]' –
Semplice: I ' m un principiante assoluto in Python. Ho iniziato a usarlo per 1 settimana. Sono più preciso nel linguaggio web. Quindi mi sembra un po 'confuso :) – krshk