csvfile
аргумент инициализатору csv.reader
может быть любым объектом, который поддерживает протокол итератора и возвращает строку каждый раз, когда вызывается его метод next()
" .
Это означает, что вы можете прочитать файл, определив функцию генератора, подобную показанной ниже, для предварительной обработки строк файла, чтобы сделать их приемлемыми для csv.reader
:
import csv
def preprocess(file):
for line in file:
yield ','.join(line.split())
values = []
with open('cppfile.txt') as file:
fieldreader = csv.reader(preprocess(file))
next(fieldreader)
for row in fieldreader:
print(f'row={row}')
values.append(float(row[0]))
print()
print(values)
Выход:
row=['-16.0000000', '0.0000000', '9.9901854997e-01', '1.0910677716e-19']
row=['-16.0000000', '0.0245437', '9.9871759471e-01', '1.6545142956e-05']
row=['-16.0000000', '0.0490874', '9.9781493216e-01', '3.3051500271e-05']
row=['-16.0000000', '0.0736311', '9.9631097893e-01', '4.9477653557e-05']
row=['-16.0000000', '0.0981748', '9.9420658732e-01', '6.5784269579e-05']
[-16.0, -16.0, -16.0, -16.0, -16.0]