我正在尝试将类似“ 8,191.55 MB”的字符串转换为“ 8191.55” 这样我就可以将其除以1024,以千兆字节为单位。
我尝试输入的代码是“ 819155”,而不是“ 8191.55”。
代码:
TotalRAM = dfHandler['Total Physical Memory'].values[0]
TotalRAM = (int)(''.join(i for i in TotalRAM if i.isdigit()))
答案 0 :(得分:3)
使用replace()
除去逗号值,然后使用split()
将其分成几部分。 split函数还将消除开头和结尾的空白。
RAM = ' 8,191.55 MB '
ram_in_MB = float(RAM.replace(',','').split()[0])
print(ram_in_MB)
# 8191.55
答案 1 :(得分:1)
给出您的代码,我会去
TotalRAM = dfHandler['Total Physical Memory'].values[0]
TotalRAM = float(''.join(i for i in TotalRAM if (i.isdigit() or i == ".")))
答案 2 :(得分:1)
TotalRAM = dfHandler['Total Physical Memory'].values[0]
TotalRAM = float(TotalRAM.replace(',', '').replace(' MB', ''))
TotalRAMGb = TotalRam / 1024
答案 3 :(得分:1)
我将使用正则表达式(re)提取字符串的数字部分。它将获得数字(d +)和小数点(。)。
import re
num = re.findall("(\d+(?:\.\d+)?)", "8,191.55 MB")
print(float(''.join(num)))
结果:
8191.55
答案 4 :(得分:0)
如何更本地化:
from locale import setlocale, LC_NUMERIC, atof
setlocale(LC_NUMERIC, '')
# ...
TotalRAM = dfHandler['Total Physical Memory'].values[0]
TotalRAM = atof(TotalRAM.split()[0])