Python中的自动字符串到数字转换

时间:2009-09-22 20:34:08

标签: python casting

我想在python中比较两个字符串列表。一些字符串是数字但是我不想将它用作数字,仅用于字符串比较。

我从文件中读取字符串并将它们放在如下列表中:

def main():
    inputFileName = 'BateCarteira.csv'
    inputFile = open(inputFileName, "r")

    bankNumbers = []

    for line in inputFile:
        values = line[0:len(line)-1].split(';');

        if (len(values[0]) > 3):
            bankNumbers.append(''+values[0])

然而,当我尝试打印数字时,它打印如下:

1,20091E + 11

打印代码:

    print 'not in the list: ' + bankNumber
    outputFile.write(bankNumber + '-')

我能做什么,python从不将字符串转换为int?

抱歉我的英语:D

2 个答案:

答案 0 :(得分:3)

Python永远不会将字符串转换为数字,除非您尝试类似:

s = "1.2"
a = float(s)

所以我猜你的.csv文件里面有字符串“1,20091E + 11”。另请注意小数点是昏迷。因此,如果您尝试将其转换为浮点数,则转换将失败。

答案 1 :(得分:2)

您需要语言环境模块以区域设置格式读取数字(即使用在欧洲(大多数)部分使用的十进制逗号)。

import locale
locale.setlocale(locale.LC_ALL, '')
f = locale.atof("1,20091E+11")