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
提示说不应该含有空字节,可是我反复检查,文件地址里没发现空字节啊! 展开
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
提示说不应该含有空字节,可是我反复检查,文件地址里没发现空字节啊! 展开
1个回答
展开全部
windows环境:
一级文件目录下,文件名为纯数字组成,程序是不可执行的
而你的属于多级目录,多级文件目录下,即使文件名为纯英文组成,程序也不可执行
这些情况下有两种解决方式:
(1)将文件名改为由英文字母组成(只适合一级文件目录)
(2)将路径名中的\字符进行转义,即E:\ML\Ch02\testDigits\0_12.txt转成E:\\ML\\Ch02\\testDigits\\0_12.txt
要把所有路径分隔符转义为"\\"
希望我的回答可以帮到你:-)
一级文件目录下,文件名为纯数字组成,程序是不可执行的
而你的属于多级目录,多级文件目录下,即使文件名为纯英文组成,程序也不可执行
这些情况下有两种解决方式:
(1)将文件名改为由英文字母组成(只适合一级文件目录)
(2)将路径名中的\字符进行转义,即E:\ML\Ch02\testDigits\0_12.txt转成E:\\ML\\Ch02\\testDigits\\0_12.txt
要把所有路径分隔符转义为"\\"
希望我的回答可以帮到你:-)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询