2013-03-15 4 views
0

У меня есть txt-файл с некоторыми «формулами excel», я преобразовал его в файл csv, используя Python csv reader/writer. Теперь я хочу прочитать значения csv-файла и выполнить некоторые вычисления, но когда я пытаюсь получить доступ к конкретному столбцу файла .csv, он все равно возвращает меня в «excel formula» вместо фактического значения? хотя когда я открываю файл csv .. формулы преобразуются в значение?
Любые идеи?Python csv reader возвращает формулу вместо значения

Вот код

код для преобразования TXT в CSV

def parseFile(filepath): 

    file = open(filepath,'r') 
    content = file.read() 
    file.close() 

    lines = content.split('\n') 

    csv_filepath = filepath[:(len(filepath)-4)]+'_Results.csv' 
    csv_out = csv.writer(open(csv_filepath, 'a'), delimiter=',' , lineterminator='\n')    
    for line in lines: 

       data = line.split('\t') 
       csv_out.writerow(data) 

    return csv_filepath 

код, чтобы сделать некоторые расчеты в CSV файл

def csv_cal (csv_filepath): 


    r = csv.reader(open(csv_filepath)) 

    lines = [l for l in r] 
    counter =[0]*(len(lines[4])+6) 

    if lines[4][4] == 'Last Test Pass?' : 
     print ' i am here' 

     for i in range(0,3): 
      print lines[6] [4] ### RETURNS FORMULA ?? 


    return 0 

Я новичок в Python, любая помощь будет оценили! Спасибо,

+0

Можете ли данные начать с '='? Если это так, вы можете вставить '' 'перед значением, чтобы заставить Excel перестать рассматривать его как формулу. – bernie

+0

Кроме того, вам нужно использовать Excel? Не могли бы вы открыть файл в текстовом редакторе? – bernie

+4

Файлы данных CSV не являются электронными таблицами; они содержат только данные. Почему вы ожидаете выполнения формул? –

ответ

0

Вы можете вставлять в Excel специального с значений только параметра. Вы можете выбрать все и вставить в другой лист и сохранить. Это избавит вас от необходимости выполнять какой-то парсер в python. Или вы можете оценить простую арифметику с помощью eval.

редактировать:

Я слышал о xlrd, которые можно загрузить с pypi. Он загружает файлы .xls.

Это звучало так, будто вы просто хотели получить окончательные данные, которые могут сделать прошлые специальные.

+0

Использование 'eval' - очень плохая идея. Ничто из таблицы, которую 'ast.literal_eval' не может обрабатывать,' eval', вероятно, не поможет; он просто откроет дверь для более сложных ошибок, причудливого необъяснимого искажения и обычных дыр в безопасности. – abarnert

Смежные вопросы