| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
 本帖最后由 yuandiyuandi123 于 2018-6-9 23:04 编辑  
 
import time 
class MyDes: 
     def __init__(self,value,string): 
          self.value = value 
          self.string = string 
 
     def __get__(self,instance,owner): 
          f = open("/Users/yuandi/Downloads/python/py文件夹/record.rtf",'a') 
          f.write("%s变量于北京时间 %s 被读取,%s = %s"%(self.string,time.localtime(time.time()),self.string,self.value)) 
          f.close() 
          return self.value 
 
     def __set__(self,instance,value): 
          f = open("/Users/yuandi/Downloads/python/py文件夹/record.rtf",'a') 
          self.value = value 
          f.write("%s变量于北京时间 %s 被修改,%s = %s"%(self.string,time.localtime(time.time()),self.string,self.value)) 
          f.close() 
 
====================================上面的代码都不重要============================================= 
 
>>> class Test: 
        x = MyDes(10,"x") 
        y = MyDes(8.8,"y") 
 
         
>>> test = Test() 
=====================================问题在这里================================================== 
>>> test.x 
Traceback (most recent call last): 
  File "<pyshell#168>", line 1, in <module> 
    test.x 
  File "/Users/yuandi/Downloads/python/py文件夹/MyDes_save.py", line 9, in __get__ 
    f.write("%s变量于北京时间 %s 被读取,%s = %s"%(self.string,time.localtime(time.time()),self.string,self.value)) 
UnicodeEncodeError: 'ascii' codec can't encode characters in position 1-7: ordinal not in range(128) 
 
 
 
 
试了一下,只要使用mac系统,向文件中写入中文(rtf或者txt),都会出现这个问题 
使用的是python3.6    
如何能解决这个异常呢 ? 
 
 |   
 
 
 
 |