我在文本文件中有元组(每行一个),名称为 listCls.txt 。他们看起来像这样
(10.0, 0.0, 0.0)
(9.297883, 3.680947, 0.0)
(7.071068, 7.071068, 0.0)
我想将此文本文件作为列表导入到我的 python 脚本中,如下所示。
list = [(10.00 , 0.00 , 0.00),( 9.30,3.68 , 0.00) , (7.07, 7.07, 0.00)]
我还想将它们四舍五入到两位数。谢谢
我在文本文件中有元组(每行一个),名称为 listCls.txt 。他们看起来像这样
(10.0, 0.0, 0.0)
(9.297883, 3.680947, 0.0)
(7.071068, 7.071068, 0.0)
我想将此文本文件作为列表导入到我的 python 脚本中,如下所示。
list = [(10.00 , 0.00 , 0.00),( 9.30,3.68 , 0.00) , (7.07, 7.07, 0.00)]
我还想将它们四舍五入到两位数。谢谢
不会为你解决它,因为你没有尝试任何东西。
open('file.txt', r)
),然后.strip()
:)我很确定有一种方法可以使用现有的 Grasshopper 组件来做到这一点,但我想试一试只是为了看看。
该位会生成一些与您的匹配的数据:
import random
f = open('listCls.txt','w')
for i in range(100):
a = random.uniform(0, 10)
b = random.uniform(0, 10)
c = random.uniform(0, 10)
f.write('({}, {}, {})\n\n'.format(a,b,c))
f.close()
然后这个位读取它:
f = open('listCls.txt','r')
list =[]
for line in f:
if line[0]=="(":
tup = eval(line)
list.append(tup)
print list
我敢肯定有人会说使用 eval 是邪恶的,但是如果您已经生成了数据并且您没有在startGlobalWar()
中间某个地方的调用中滑倒,那么这几乎就是 eval 的用途。
如果您不信任数据源(如果您没有成功,那么您可能不应该这样做),然后按照MightyPork的建议制作一个字符串分解器。
我省略了关于四舍五入的部分。四舍五入适用于人类。如果数据有小数位,请保留它们,直到您绝对需要为止。否则,您只会累积不准确,如果您需要将其带入现实世界,那就是它第一次在一起和必须熬夜打磨东西以使其适合之间的区别。