如何从字符串中去除字母并比较值?

我刚刚为正在从事的这个项目学习了Python,但是在比较两个值时遇到了麻烦-我正在使用Python xlwt和xlrd库并从文档中提取单元格的值。问题是某些值的格式为'NP_000000000','IPI00000000.0'和'000000000',因此我需要检查值的格式,然后在比较它们之前除去字符和小数点(如有必要) 。

我尝试使用S1[:3]来获取不带字母字符的值,但出现“浮点不可下标”错误

然后我尝试这样做,re.sub(r'[^\d.]+, '', S1)但出现了Typerror:预期为字符串或缓冲区

我认为由于通过返回的单元格的值sheet.cell( x, y).value将是一个字符串,因为它是字母数字,但似乎必须以浮点数形式返回

格式化这些值然后进行比较的最佳方法是什么?


长风秋雁
浏览 266回答 2
2回答

九州编程

听起来您正在使用的API会根据单元格的内容返回不同的类型。您有两个选择。您可以将所有内容转换为字符串,然后执行当前操作:s = str(S1)...您可以检查输入的类型并采取适当的措施:如果isinstance(S1,basestring):#这是一个字符串,去掉前缀elif isinstance(S1,float):#这是一个浮点,只需使用它
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python