Unity3D_Python——记录在unity3d中写python时遇到的一些问题(python2语法)

使用了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’。

你可能感兴趣的:(unity3d,python)