2015-12-12 1 views
0

У меня есть несколько списков, которые я хочу экспортировать в один и тот же .txt-файл.Экспорт различных списков в .txt в python

До сих пор я только экспортировать 3 из списков с помощью

my_array=numpy.array(listofrandomizedconditions) 
my_array2=numpy.array(inputsuser) 
my_array3=numpy.array(reactiontimesuser) 
combined=numpy.column_stack([my_array,my_array2,my_array3]) 
numpy.savetxt(participantnumber + ".txt", combined, delimiter=" ", fmt ="%-12s") 

Это дает мне выход, как

CongruentPositief no input or wrong button no reactiontime 
IncongruentNegPos no input or wrong button no reactiontime 

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

Также я хочу добавить несколько списков, которые не содержат 192 элемента в отличие от первых 3, но затем я получаю сообщение об ошибке, что каждый массив должен быть одного размера. Есть ли способ обойти это?

+0

Почему вы используете массивы? Почему не списки и строки? – hpaulj

ответ

0

Особенно, если вы начинаете со списков (строк) Я не вижу смысла использовать numpy массивы.

Для начала просто попробуйте напечатать значения:

In [659]: conditions=['one','two','three'] 
In [660]: values=[1,2,3] 
In [661]: other=['xxxx','uuuuuuu','z'] 

базовый формат

In [662]: for xyz in zip(conditions, values,other): 
    print("%s,%s,%s"%xyz) 
    .....:  
one,1,xxxx 
two,2,uuuuuuu 
three,3,z 

рафинированные с вкладкой и фиксированной длины:

In [663]: for xyz in zip(conditions, values,other): 
    print("%-12s\t%-12s\t%-12s"%xyz) 
    .....:  
one    1    xxxx   
two    2    uuuuuuu  
three   3    z  

Следующий шаг, чтобы открыть файл и напишите на это, а не print.

Это столбец столбцов, который требует строк равной длины. savetxt просто создает строку fmt из вашего параметра (и количества столбцов) и записывает каждый row, как я.


In [667]: with open('temp.txt','w') as f: 
    .....:  for xyz in zip(conditions,values,other): 
    .....:   f.write('%-12s,%-12s,%-12s\n'%xyz) 
    .....:   
In [668]: cat temp.txt 
one   ,1   ,xxxx   
two   ,2   ,uuuuuuu  
three  ,3   ,z 
+0

Работал как шарм! Благодарю. – Joris