我想在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答案 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")