python中关于open()函数的TypeError

我的代码如下:defimg2vector(filename):returnVect=zeros((1,1024))fr=open(filename)foriinrange... 我的代码如下:
def img2vector(filename):
returnVect = zeros((1, 1024))
fr = open(filename)
for i in range(32):
lineStr = fr.readline()
for j in range(32):
returnVect[0, 32*i+j] = int(lineStr[j])

在IDLE运行时输入如下:img2vector('E:\ML\Ch02\testDigits\0_12.txt')
返回的结果提示出错:
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
img2vector('E:\ML\Ch02\testDigits\0_12.txt')
File "C:\Users\Administrator\Desktop\ML\kNN.py", line 90, in img2vector
fr = open(filename)
TypeError: file() argument 1 must be encoded string without NULL bytes, not str
提示说不应该含有空字节,可是我反复检查,文件地址里没发现空字节啊!
展开
 我来答
z伊凡z
推荐于2018-03-26 · TA获得超过229个赞
知道小有建树答主
回答量:184
采纳率:0%
帮助的人:100万
展开全部
windows环境:
一级文件目录下,文件名为纯数字组成,程序是不可执行的
而你的属于多级目录,多级文件目录下,即使文件名为纯英文组成,程序也不可执行

这些情况下有两种解决方式:

(1)将文件名改为由英文字母组成(只适合一级文件目录)

(2)将路径名中的\字符进行转义,即E:\ML\Ch02\testDigits\0_12.txt转成E:\\ML\\Ch02\\testDigits\\0_12.txt

要把所有路径分隔符转义为"\\"

希望我的回答可以帮到你:-)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式