2013-12-24 3 views
1

Я пытаюсь сделать функцию, которая будет изменять порядок заголовков вместе с их полями:Можно ли манипулировать заголовками и полями dbf IE изменить порядок?

import dbf 

table = dbf.Table('somefile.dbf', default_data_types = {'C': dbf.Char}) 

headerlist = [head0, head1, head2, head3] 

def _reorder(x,y): 
    z = table._meta.user_fields 

    with table: 
     z.insert(z.index(x), z.pop(z.index(y))) 

while headerlist != table.field_names: 
    _reorder(2, 0) 
    _reorder(1, 3) #along with any others needed 

, но это не кажется, что _meta.user_fields правильный способ управления этими данными. Мне интересно, будет ли проще записывать данные в определенном порядке, которые мне нужны для нового файла .dbf.

Я, скорее всего, с кодом здесь, только начинаю изучать python ... Может ли кто-нибудь указать мне в правильном направлении?

ответ

1

Самый простой способ изменить порядок полей - это просто создать новую базу данных. Я не делал положения в своем модуле dbf, чтобы разрешить переупорядочивание полей.

Если вы пытаетесь представить или обработать поля в определенном порядке, вы можете сделать что-то вроде:

field_order = ['head3', 'head0', 'head2', 'head1'] 
for field in field_order: 
    print_or_process(my_table[field]) 
Смежные вопросы