使用如下语句读取名为0_xx.txt 文件时,遇到错误  ValueError: embedded null character

if __name__ == '__main__':
fr = open("F:\eclipse_workspace\machine_learning_example\Ch02\trainningDigits\0_38.txt")
for i in range(32):
lineStr = fr.readline()
lineStr = lineStr.strip()
print(lineStr)
pass

1、通过测试,确定错误确实是文件读取语句;

2、是否是文件中包含null字符呢?用ultraedit工具用16进制形式检查数据文件,没有发现有null字符;

3、是否是因为Windows中的编码和python中的编码形式不一样造成的呢?查看到文件编码为GBK格式,但python是可以正确读取GBK文件的,试了其它GBK文件,读取没有任何问题;

4、是不是因为文件名太长?把数据文件放在当前文件夹下,尝试读取确实没有问题。但真的是文件名太长的原因吗?这时候我才发现文件名中有个 ‘\0’ ,才如梦初醒。

注意:一般情况下,Python解释器会将遇到的‘\’识别为路径,会自动增加一个'\'以便和转义字符进行区分,但若遇到转义字符则不增加‘\’。

例如:上述文件名将被转换为 F:\\eclipse_workspace\\machine_learning_example\\Ch02\trainingDigits\0_38.txt。因而出错。

文件路径中若包含‘\0’、'\t' 等特殊转义字符时要特别注意。

推荐文件路径写法:

  • F:/eclipse_workspace/machine_learning_example/Ch02/trainningDigits/0_38.txt ,斜杠反过来了,这样就不会出现歧义了。
  • F:\\eclipse_workspace\\machine_learning_example\\Ch02\\trainningDigits\\0_38.txt

诡异错误一: ValueError: embedded null character的更多相关文章

  1. matplotlib.pyplot import报错: ValueError: _getfullpathname: embedded null character in path

    Environment: Windows 10, Anaconda 3.6 matplotlib 2.0 import matplotlib.pyplot 报错: ValueError: _getfu ...

  2. Matplotlib ValueError: _getfullpathname: embedded null character

    Traceback (most recent call last): File "<stdin>", line 1, in <module> File &q ...

  3. windows7,python3使用time.strftime()函数报ValueError: embedded null byte

    windows7环境下,执行代码报ValueError: embedded null byte时,在原代码前面加一行代码:locale.setlocale(locale.LC_ALL,'en')即可解 ...

  4. python读取文件embedded null character是什么原因

    地址的\需要转义符: 将\写成\\ 或者在整个字符串前面添加字母r

  5. Celery 在Windows下启动worker时出现错误:ValueError: not enough values to unpack (expected 3, got 0)

    在公司Linux环境下没有出现问题,在回到家后直接在Windows10下运行出现错误: ValueError: not enough values to unpack (expected 3, got ...

  6. 除虫记之C#调用C函数出现的诡异错误

     作者:朱金灿 来源:http://blog.csdn.net/clever101 同事反映在在项目中使用C#程序调用我们部门编写的C++模块出现一个诡异错误:在调用A算法失败后,其它算法均不能调 ...

  7. json.loads(s) returns error message like this: ValueError: Invalid control character at: line 1 column 33 (char 33)

    json.loads(s) returns error message like this: ValueError: Invalid control character at: line 1 colu ...

  8. pytorch运行错误:ValueError: too many dimensions 'str'

    问题: 本人在使用BERT进行微调的时候,在读取数据的时候出现了一个错误:ValueError: too many dimensions 'str'    于是我Debug了以后,发现问题出现在这个部 ...

  9. Linq编译带来的诡异错误

    今天遇到一个很诡异的问题,初步猜测是Linq编译以及编译器自动优化带来的原因,对IL不是很熟悉,所以懒得去追了. 贴个代码出来,希望能抛砖引玉,得到正解. 注意到我用原始的foreach语句代替了li ...

随机推荐

  1. 利用MUI滑动进行利息计算(移动端APP显示)

    在开发移动端的应用时,会用到很多的手势操作,比如滑动.长按等,为了方便开放者快速集成这些手势,mui内置了常用的手势事件,其中滑动应用是比较常见的应用操作,本篇文章将讲述如何利用滑动改变对应值进行计算 ...

  2. BufferedReaderTest

    package JBJADV003;import java.io.*;public class BufferedReaderTest { /** * @param args */ public sta ...

  3. Spring Boot简单xml配置集成mybatis

    一.xml配置版 1.properties文件中增加的配置: mybatis.config-locations=classpath:mybatis/mybatis-config.xml mybatis ...

  4. 跳跳棋(9018_1563)(BZOJ_2144)

    题目: Hzwer的跳跳棋是在一条数轴上进行的.棋子只能摆在整点上.每个点不能摆超过一个棋子. 某一天,黄金大神和cjy用跳跳棋来做一个简单的游戏:棋盘上有3颗棋子,分别在a,b,c这三个位置.他们要 ...

  5. web.xml is missing and <failOnMissingWebXml> is se

    摘要 maven模块化 在学习maven模块化构建项目的时候遇到了如下报错信息: web.xml is missing and <failOnMissingWebXml> is set t ...

  6. JavaScript创建对象的方法

    显示在浏览器中的控制台中. <script type="text/javascript"> //这个工厂方法返回一个新的"范围对象" functio ...

  7. [BZOJ2783/JLOI2012]树 树上倍增

    Problem 树 题目大意 给出一棵树,求这个树上的路径的数量,要求路径上的点权和等于s且路径的上每个点深度不同. Solution 这个题目可以用不少方法做. 首先,路径上每个节点的深度不同决定了 ...

  8. Oracle 11g OCM 考试大纲

    考试大纲共分9部分.   一.Server Configuration 服务器配置 1  Create the database 创建数据库 2  Determine and set sizing p ...

  9. firefox插件开发及源码下载

    在个别情况下,由于数据量巨大,造成显示性能的明显下降,此时使用c++开发firefox插件,可以提高用户使用体验. test.html: 在插件中,我们导出3个函数给js:AddStr, Pause, ...

  10. ubuntu16.04安装不上有道词典的解决办法

    转自:http://www.linuxdiyf.com/linux/21143.html ubuntu16.04安装不上有道词典,提示: le@hu-pc:~/下载$ sudo dpkg -i you ...