Чтение столбцов текстового файла на Python - PullRequest
0 голосов
/ 17 февраля 2019

Я работаю с.текстовый файл.Это имеет 100 строк и 5 столбцов.Мне нужно разделить его на пять векторов длины 100, по одному на каждый столбец.Я пытаюсь следовать этому: Чтение определенных столбцов из текстового файла в Python .

Тем не менее, когда я реализую его как:

token = open('token_data.txt','r')
linestoken=token.readlines()
resulttoken=[]
for x in linestoken:
    resulttoken.append(x.split(' ')[1])
token.close()

Я не знаю, горячо это сохраняется.Если я пишу print('resulttoken'), на моем экране появляется надпись.

Может кто-нибудь сказать мне, что я делаю не так?

Спасибо. часть моего текстового файла

Ответы [ 3 ]

0 голосов
/ 17 февраля 2019

Ну, файл выглядит как разделенный на таблицу, а не на пробел, поэтому попробуйте это:

token = open('token_data.txt','r')
linestoken=token.readlines()
tokens_column_number = 1 resulttoken=[] for x in linestoken:
    resulttoken.append(x.split('\t'))
token.close()
print(resulttoken)
0 голосов
/ 17 февраля 2019

Вам нужен список из пяти отдельных списков, и добавляйте каждый по очереди.

columns = [[]] * 5
with open('token_data.txt','r') as token:
    for line in token:
        for field, value in enumerate(line.split()):
             columns[field].append(value)

Теперь вы найдете первое значение из первой строки в columns[0][0], второе значение изпервая строка в columns[1][0], первое значение во второй строке в columns[0][1] и т. д.

Чтобы напечатать значение переменной, не заключайте ее в кавычки.Кавычки создают буквенную строку.

print(columns[0][0])

печатает значение columns[0][0], тогда как

print('columns[0][0]')

просто печатает буквальный текст "columns [0] [0]".

0 голосов
/ 17 февраля 2019

x.split(' ') бесполезно, поскольку столбцы вашего текстового файла разделены более чем одним пробелом.Используйте x.split() для игнорирования пробелов:

token = open('token_data.txt','r')
linestoken=token.readlines()
tokens_column_number = 1
resulttoken=[]
for x in linestoken:
    resulttoken.append(x.split()[tokens_column_number])
token.close()
print(resulttoken)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...