将字符串转换为python数量

2024-06-02 12:47:35 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的一个项目中,我使用了quantity包来表示物理量。这些量必须存储在png的元数据中,在那里它们必须可以被其他程序和我自己的程序读取。因此,数量必须存储为字符串(png元数据的要求),最好以人类可读的格式存储。在

虽然包quantity提供了从数量到字符串的对话,但似乎没有现成的方法将这些字符串解析回一个数量。由Quantity包生成的字符串是,例如

1.3 nm
[1.4 3.1415 5.2] kg/m**2

有没有一种简单的方法可以将这些字符串转换回数量。数量?在


Tags: 数据项目方法字符串程序数量png格式
1条回答
网友
1楼 · 发布于 2024-06-02 12:47:35

我尝试了下面的代码,我认为它应该适用于大多数情况。在

import quantities as pq
import numpy as np

def str2pq(s):
    p1 = s.find('[')
    if p1 < 0:
        sq, su = s.split()
        return pq.Quantity(float(sq), su)
    else:
        p2 = s.find(']')
        ss = s[p1+1:p2-1]
        return pq.Quantity(np.array(list(map(float, ss.split()))), s[p2+1:])

q = [pq.Quantity(10, 'nm'), pq.Quantity(1.0, pq.kilogram/pq.meter**2), pq.Quantity(np.array([1.2, 3.4]), pq.kilohertz)]
qs = list(map(str, q))
qret = list(map(str2pq, qs))
print(q)
print(qret)

相关问题 更多 >