python – TypeError:强制转换为Unicode:需要字符串或缓冲区,找到类型
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – TypeError:强制转换为Unicode:需要字符串或缓冲区,找到类型,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1237字,纯文字阅读大概需要2分钟。
内容图文
![python – TypeError:强制转换为Unicode:需要字符串或缓冲区,找到类型](/upload/InfoBanner/zyjiaocheng/802/c07f5ebac77440f4bbdb51d44496fd3e.jpg)
我正在尝试编写一个代码来读取文件并对其进行一些操作.
代码:
def assem(file):
import myParser
from myParser import Parser
import code
import symboleTable
from symboleTable import SymboleTable
newFile = "Prog.hack"
output = open(newFile, 'w')
input = open(file, 'r')
prsr=Parser(input)
while prsr.hasMoreCommands():
str = "BLANK"
if(parser.commandType() == Parser.C_COMMAND):
str="111"+code.comp(prsr.comp())+code.dest(prsr.dest())+code.jump(prsr.jump())+"\n"
output.write(str)
prsr.advance()
我得到的错误:
Traceback (most recent call last):
File "assembler.py", line 11, in <module>
input = open(file, 'r')
TypeError: coercing to Unicode: need string or buffer, type found
我如何运行该程序:
python assembler.py Add.asm
其中Add.asm标识我想要读取的文件,所有模块都在同一个库中,包括.asm文件.
解决方法:
你有很多问题.
首先,你的缩进是不一致的.这意味着导入被视为assem函数的一部分,但没有别的.从字面上看,你必须要了解的关于Python的第一件事是缩进很重要.
其次,您使用内置函数名称file作为变量名称.不要那样做.
第三,你实际上并没有调用assem函数.但是由于你的第一个问题,第一个未缩进的行在启动时执行.因此,当达到行input = open(文件,’r’)时,文件仍然引用内置函数,而不是您的变量(此时未定义).
最后,虽然这实际上并没有导致您的问题,但您不需要同时导入myParser和myParser导入Parser.选一个.
内容总结
以上是互联网集市为您收集整理的python – TypeError:强制转换为Unicode:需要字符串或缓冲区,找到类型全部内容,希望文章能够帮你解决python – TypeError:强制转换为Unicode:需要字符串或缓冲区,找到类型所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。