【问题标题】:Python 2.7 TypeError: file() argument 1 must be encoded string without NULL bytes, not strPython 2.7 TypeError:file() 参数 1 必须是没有 NULL 字节的编码字符串,而不是 str
【发布时间】:2013-12-20 08:44:21
【问题描述】:

我尝试用 Python 和 xlrd 打开一个 excel 工作表,但仍然出现以下错误

open_workbook 中的错误:

f = open(文件名, "rb")

TypeError: file() 参数 1 必须是没有 NULL 字节的编码字符串,而不是 str。

这是我的代码:

FILE =  tkFileDialog.askopenfile()
string=FILE.read()
wb = xlrd.open_workbook(string)

请问怎么了?非常感谢

【问题讨论】:

  • print repr(filename) 告诉我们你得到了什么。
  • 看起来您正在读取的文件中有空字节以获取文件名。
  • 打印 repr(FILE) 你的意思是??我得到:
  • 是的,当我显示它时,该文件中存在许多 \0x00 但该怎么办?还是应该打开?
  • 修复您从中读取文件名的文件。如果它是由另一个程序生成的,也请修复该程序。

标签: encoding xlrd


【解决方案1】:

您需要使用askopenfilename 而不是askopenfile,除非您真正传递的是文件而不是文件名。

FILE =  tkFileDialog.askopenfilename()
string = FILE.read()
wb = xlrd.open_workbook(string)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-17
    • 2016-04-14
    • 1970-01-01
    • 2017-06-07
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    • 2018-09-13
    相关资源
    最近更新 更多