使用了github上的一个插件实现了在unity3D中使用python.目前主要用python读写文件,由于该插件使用的不是CPython,而是IronPython,仅支持python2语法,所以在使用过程中会遇到一些问题:
1、读txt时,由于txt文件的编码方式是UTF-8,而python默认使用ASCII,所以需要改变python的编码方式。在python3中,可以通过使用open函数的可选变量encoding实现,例如:
def read_txt() -> str:
test= open('Test.txt', encoding='UTF-8')
for line in test:
line += '\n'
print(line)
test.close()
但是我使用的插件只能在unity3D中运行python2代码,在python2中,需要先改变python的编码方式,具体方法有两种,一种是在代码开头加上如下代码块:
import sys
reload(sys)
sys.setdefaultencoding('utf8')
但是,这种方法是临时的,只在本程序执行时生效,系统默认编码方式并没有改变。
方法2:为了一次性解决问题,我们可以修改python的默认编码。具体操作如下:
1、在python安装目录的Lib\site-packages文件夹下新建一个sitecustomize.py文件。
2、在sitecustomize.py填写如下代码:
# encoding=utf8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
3、重启python,通过sys.getdefaultencoding()查看默认编码,这时发现编码方式已经改为了’utf8’。