Python csv读取器返回公式而不是值

2 投票
1 回答
2155 浏览
提问于 2025-04-17 19:16

我有一个文本文件,里面有一些“Excel公式”,我用Python的csv读写功能把它转换成了csv文件。现在我想读取这个csv文件里的数值并进行一些计算,但当我试图访问csv文件的某一列时,它却还是给我返回“Excel公式”,而不是实际的数值??虽然当我打开csv文件时,公式已经转换成了数值??
有什么建议吗?

这里是代码

将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还很陌生,任何帮助都非常感谢! 谢谢,

1 个回答

1

在Excel中,你可以使用特殊粘贴功能,选择仅值选项。你可以先全选,然后粘贴到另一个表格里并保存。这样做可以省去你在Python中实现某种解析器的麻烦。或者,你也可以用eval来计算一些简单的数学运算。

补充:

我听说过一个叫xlrd的工具,可以从pypi下载。它可以加载.xls格式的文件。

听起来你只是想要最终的数据,而特殊粘贴功能正好可以满足这个需求。

撰写回答