Разбор с использованием нескольких разделителей в Python - PullRequest
1 голос
/ 09 июля 2019

У меня есть файл данных, в котором данные хранятся с запятой и символом табуляции и разделителем новой строки, например

[32135,    311351,    88686
123152,    3153131,    131513
....]

я хочу извлечь из него массив nx3 как я могу это сделать?

пытался использовать split в splitline, но он только частично проанализировал файл

import numpy as np
filename="Elem_Output.inp"
f = open(filename,"r")
pmax=f.read()
p1=pmax.split()

я ожидаю извлечь массив с каждой строкой в ​​строке и числами в каждом столбце в столбце массивов

1 Ответ

0 голосов
/ 09 июля 2019

После pmax = f.read () вы можете написать:

#Replace tab and newline as comma separater
pmax = pmax.replace("\n",",").replace("\t", ",")

#Replace repeated delimiter by a single instance
pmax = pmax.replace(",,,",",").replace(",,",",")

Само собой разумеется, это можно лучше кодировать с помощью регулярных выражений (import re).

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

pmax = pmax.replace("[","").replace("]","")

Теперь, если вы хотите этот вывод в виде массива вместо списка, попробуйте это:

from array import array
array_pmax = array("B", pmax)

Первый аргумент в функции array () указывает код типа.Чтобы узнать больше, просто используйте help (массив)

Надеюсь, это поможет !!

...