先贴上我的代码片段和错误描述
_mode = os.stat(dirPath).st_mode
print _mode
print type(_mode)
print oct(_mode) #当运行到这句时出错
File "main.py", line 227, in checkdir
print oct(_mode)
TypeError: oct(QTextStream): argument 1 has unexpected type 'int'
很简单的一个文件权限获取代码,但是却出错了,让我一度怀疑是不是自己记错oct使用方式了,将代码拆分,在python原生解释器一句一句执行后发现没有问题,但是怎么到编辑器里面就错了呢?
几经查找没结果后才注意到错误描述里面提到“ oct(QTextStream)”,通过ctrl+B查看一下oct函数定义,发现被定义到pyqt4去了
下面是python原生的定义
原因是我为了方便在引用pyqt4库时使用的如下语句
from PyQt4.QtGui import *
from PyQt4.QtCore import *
重新更新引用,并且更改当前代码中使用qt控件的代码,成功解决!
import PyQt4.QtGui as PyQt4Gui
import PyQt4.QtCore as PyQt4Core
错误描述还是给力啊,以后不能忽略它了