Rhino(犀牛)中国技术支持与推广中心

标题: 【已解决】rhinopython 不能向外部txt写出中文,怎么破啊,各位老师 [打印本页]

作者: 大叔很忙    时间: 2016-7-5 10:13
标题: 【已解决】rhinopython 不能向外部txt写出中文,怎么破啊,各位老师
本帖最后由 筑梦NARUTO 于 2016-7-5 10:42 编辑

在python2.7/3.5IDLE中都可以运行,但在rhino5.0sr13.0中不能运行,求各位老师帮帮忙啊?

Desktop.rar

354 Bytes, 下载次数: 48


作者: 筑梦NARUTO    时间: 2016-7-5 10:28
其实看提示也可以看出来编码格式不对造成的,因为中文是utf-8格式编码的,正常创建的txt不是这个编码格式所以遇到中文会报错。
这里需要导入一个模块来做就行了。
  1. import codecs
复制代码
导入这个模块后,用这个模块里的open函数就可以自己设置编码格式了。
导出点坐标啊这些我不爱用txt格式。所以演示一个csv格式的。txt一样的。(PS:我这个程序不够健壮,最好用到try语句里。演示就随意了)
  1. #coding=utf-8
  2. import codecs



  3. def main():
  4.     pts = rs.GetObjects("选择要导出坐标的点",1)
  5.     if not pts:return
  6.     new_pts = rs.coerce3dpointlist(pts)
  7.     txt = codecs.open("/Users/1/Desktop/pts.csv","w","utf-8")
  8.     for i,pt in enumerate(new_pts):
  9.         txt.write("点%i,%.4f,%.4f,%.4f \n"%(i,pt.X,pt.Y,pt.Z))
  10.     txt.close()

  11. if __name__=="__main__":
  12.     main()
复制代码






欢迎光临 Rhino(犀牛)中国技术支持与推广中心 (http://bbs.rhino3d.asia/) Powered by Discuz! X3.2