旧 python 脚本有问题
probleme old python script
大家好,我有一个 python 2.X 脚本有问题,我想 运行 在 3X 中,这里是错误消息,你能帮我吗
outfile.write(fixed.encode,"(utf-8)")
TypeError:write() 只接受一个参数(给定 2 个)
编辑:
#Write the converted program in this folder:
print ("\n--Converted to TI-Basic code:--")
print (fixed)
print ("")
print ("Making output files: "+outname+".tib, "+outname+".8xp ...")
outfile=open(outname+".tib","w")
outfile.write(fixed.encode("utf-8"))
outfile.close()
代码和新的错误消息:第 68 行,在 main
outfile.write(fixed.encode("utf-8"))
TypeError: write() 参数必须是 str,而不是 bytes
这可能是一些流氓造成的IDE autocomplete/Intellisense。
应该是:
outfile.write(fixed.encode("utf-8"))
所以,引号被调换了,与 Python 2.x - 3.x 转换完全无关。
outfile.write(fixed.encode,"(utf-8)")
中似乎缺少括号,代码看起来很混乱。
您的代码可以在几个方面进行清理,我现在进行了一些快速调整。
#Write the converted program in this folder:
print("\n--Converted to TI-Basic code:--")
print(fixed, end="\n\n")
print(f"Making output files: {out_name}.tib, {out_name}.8xp ...")
with open(f"{out_name}.tib", "w") as out_file:
out_file.write(fixed)
错误"TypeError: write() argument must be str, not bytes"是因为您尝试写入字节数据但未指定以字节模式打开文件。如果要将字符串写入文件,请使用 with
语句
with open(outname+".tib","wb") as outfile:
outfile.write(fixed.encode("utf-8"))
如果固定变量是str
类型那么你可以避免上面代码中的encode('utf-8')
然后模式应该只是w
大家好,我有一个 python 2.X 脚本有问题,我想 运行 在 3X 中,这里是错误消息,你能帮我吗
outfile.write(fixed.encode,"(utf-8)")
TypeError:write() 只接受一个参数(给定 2 个)
编辑:
#Write the converted program in this folder:
print ("\n--Converted to TI-Basic code:--")
print (fixed)
print ("")
print ("Making output files: "+outname+".tib, "+outname+".8xp ...")
outfile=open(outname+".tib","w")
outfile.write(fixed.encode("utf-8"))
outfile.close()
代码和新的错误消息:第 68 行,在 main outfile.write(fixed.encode("utf-8")) TypeError: write() 参数必须是 str,而不是 bytes
这可能是一些流氓造成的IDE autocomplete/Intellisense。
应该是:
outfile.write(fixed.encode("utf-8"))
所以,引号被调换了,与 Python 2.x - 3.x 转换完全无关。
outfile.write(fixed.encode,"(utf-8)")
中似乎缺少括号,代码看起来很混乱。
您的代码可以在几个方面进行清理,我现在进行了一些快速调整。
#Write the converted program in this folder:
print("\n--Converted to TI-Basic code:--")
print(fixed, end="\n\n")
print(f"Making output files: {out_name}.tib, {out_name}.8xp ...")
with open(f"{out_name}.tib", "w") as out_file:
out_file.write(fixed)
错误"TypeError: write() argument must be str, not bytes"是因为您尝试写入字节数据但未指定以字节模式打开文件。如果要将字符串写入文件,请使用 with
语句
with open(outname+".tib","wb") as outfile:
outfile.write(fixed.encode("utf-8"))
如果固定变量是str
类型那么你可以避免上面代码中的encode('utf-8')
然后模式应该只是w