Я попытался создать массив из текстового файла. я видел ранее, что NumPy был метод loadtxt
, поэтому я стараюсь, но это добавить некоторые вредный символ перед каждой строкой ...Символ 'b' добавлен при использовании 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' `--..--` '"]
Что это «б» и двойные кавычки? И откуда они взялись? Я попытался найти решение из Интернета, например, открыть файл с кодеками, изменить dtype на «S20», «S11» и многие другие вещи, которые не работают ... Что я ожидаю, это массив юникод строки, которые выглядят следующим образом:
[[' .--``--. ']
['.--` `--.']
['| |']
['| |']
['`--. .--`']
[' `--..--` ']]
Информация: Я использую Python 3.4 и NumPy из Debian стабильный репозиторий
я уже перед приездом на этот вопрос, и, OK !, а для байта, но почему это _inside_ двойная кавычка? Я должен повторно использовать этот массив позже для замены некоторых символов в другом массиве, согласно индексу. Поэтому, если у меня есть b и 2 лишних простых кавычки, он сломает более позднюю программу. – krshk
Почему вы используете 'loadtxt' для загрузки такого файла? 'loadtxt' предназначен для столбцов данных, разделенных запятыми или каким-либо другим разделителем. Вы можете так же легко прочитать этот файл с чистым python; например что-то вроде 'with open ('tile') как f: a = [line.strip ('\ n') для строки в f.readlines(), если не line.startswith ('#')]' –
Простой: m - общий новичок в Python. Я начал использовать его в течение 1 недели. Я более точен на веб-языке. Поэтому мне кажется немного запутанным :) – krshk