РЕДАКТИРОВАТЬ: Проблема не в ЗНАКЕ МИНУС U+2212. Положительные числа также затронуты, как показано в списке ниже. И я попробовал sed 's/-/-/' infile > fixfile в командной строке, но проблема все еще возникает. Я добавил .replace(u'\u2212', '-') в открытую строку файла.
Я читаю серию чисел из форматированного текста/PDB. файл. Я пытаюсь сравнить значения со вторым файлом PDB. Однако, когда я читаю координаты X, Y, Z, я получаю сообщение об ошибке: ValueError: не удалось преобразовать строку в число с плавающей запятой: '-0.703'
Однако я это делаю не вижу никакой причины, по которой значение не является приемлемым числом с плавающей запятой. Я получаю эту ошибку с рядом чисел в файле, например (есть еще тысячи)
2.059
2.403
3.409
4.089
3.752
2.752
0.182
−0.328
−0.261
−1.454
−1.837
−2.352
−2.808
−2.184
−1.255
−2.206
−0.020
0.306
1.684
Но я не вижу причин, по которым эти значения с плавающей запятой были бы неприемлемы. Я попробовал добавить полосу на случай, если остались невидимые пробелы, но безуспешно.
for each in MArr:
if "ATOM" in each:
sub = each.split(" ")
sub = [x for x in sub if x != ""]
if sub[5] in MDict.keys():
MDict[sub[5]]["ResID"].append(sub[1])
MDict[sub[5]]["Line"].append(each)
try:
MDict[sub[5]]["XYZ"].append(float(sub[6]).strip())
except:
print(sub[6])
else:
MDict[sub[5]] = {"ResID":[],"Line":[], "XYZ":[]}
MDict[sub[5]]["ResID"].append(sub[1])
MDict[sub[5]]["Line"].append(each)
try:
MDict[sub[5]]["XYZ"].append(float(sub[6]).strip())
except:
print(sub[6])
Подробнее здесь: https://stackoverflow.com/questions/792 ... e-a-number
Python – преобразование/приведение с плавающей запятой, падающее на число, похожее на число [дубликат] ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение