Как мне индексировать каждый символ в текстовом файле? - PullRequest
1 голос
/ 02 апреля 2020

У меня есть этот файл:

01000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
1000000000

01100000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
1000000000

Я хочу перебрать каждый символ и в основном поместить их в 2-й список, где внутренний список содержит каждый символ, а внешний список содержит список с каждым символ и заканчивается символом \n\n, поэтому здесь у меня будет список 2 на 8 * 8 + 10. Проблема в том, что после каждой строки есть символ \n, который тоже читается как символ, а также я пытался сделать это с помощью функции read(), которая перебирает мой список, но по какой-то причине он получает как много символов я даю в качестве параметра, а не их индекс. Он также начинается с символа '', я думаю, он складывает количество элементов, которые я даю в качестве параметра, и помещает различные символы в следующий список.

Вот мой код:

lines, columns=8, 8
bias=10
x=[[0 for i in range(lines*columns)] for j in range(patternCount)]

with open("sabloane.txt", "r") as file:
for pattern in range(patternCount):
    for pixel in range(lines*columns+bias):
        x[sablon][pixel]=file.read(pattern*patternCount+pixel)
print(x)

Возвращает:

[['', '0', '10', '000', '00\n0', '00000', '00\n000', '00000\n0', '0000000\n', '00000000\n', '00000000\n0', '0000000\n000', '00000\n100000', '0000\n\n0110000', '0\n00000000\n000', '00000\n00000000\n', '00000000\n0000000', '0\n00000000\n000000', '00\n1000000000\n\n', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '']]

Ответы [ 2 ]

1 голос
/ 02 апреля 2020

Ну, для всех, кто интересуется моим предыдущим комментарием о получении N-го элемента из файла, я просто отредактировал код @Hanxi Fu, чтобы поместить элементы из первых N-1 строк в матрицу, а остальные элементы от последней строки к другой матрице.

x=[[0 for i in range(lines*columns)] for j in range(patternCount)]
y=[[0 for i in range(bias)] for j in range(patternCount)]

with open("sabloane.txt", "r") as file:
    stringFile=file.read()
    patterns=stringFile.split("\n\n")
    patterns.pop(patternCount)
    for i in range(patternCount):
        pixel="".join(patterns[i].split("\n"))
        for j in range(lines*columns):
            x[i][j]=pixel[j]
        for j in range(bias):
            y[i][j]=pixel[lines*columns+j]
1 голос
/ 02 апреля 2020

Не усложняй.

# Assume you got the file string to variable string
outer = []
items = string.split('\n\n')
for item in items:
    inner = []
    temp = ''.join(item.split('\n'))
    for c in temp:
        inner.append(c)
    outer.append(inner)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...