Чтобы обработать строку заголовка (первую строку в файле), используйте ее явно с .readline()
перед итерацией по оставшимся строкам:
fh = open(fileName)
headers = fh.readline().strip().split('\t')
for line in fh:
arrayCols = line.strip().split('\t')
## etc...
Я не уверен, какую структуру данных вы хотите получитьиз файла;Вы, кажется, подразумеваете, что вам нужен список в строке, который включает заголовки.Подобное дублирование заголовков не имеет особого смысла.
Предполагая довольно тривиальную файловую структуру со строкой заголовка и фиксированным числом столбцов в строке, ниже приведен генератор, который выдает словарь на строку, используя заголовкив качестве ключей и значения столбцов в качестве значений:
def process_file(filepath):
## open the file
with open('my_file') as src:
## read the first line as headers
headers = src.readline().strip().split('\t')
for line in src:
## Split the line
line = line.strip().split('\t')
## Coerce each value to a float
line = [float(col) for col in line]
## Create a dictionary using headers and cols
line_dict = dict(zip(headers, line))
## Yield it
yield line_dict
>>> for row in process_file('path/to/myfile'):
... print row
>>>
>>> {'genes':100.00, 'S1':-0.243, 'S2':-0.021, 'S3':-0.205, 'S4': -1.283, 'S5': 0.411}
>>> {'genes':10000.00, 'S1':-1.178, 'S2':-0.79, 'S3':0.063, 'S4': -0.878, 'S5': 0.011}