初级python翻译:我无法将列表从shelve模块转换成字符串

2024-06-08 10:03:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图做一个简单的翻译器,从一个搁置模块的字典,我可以键入英文单词,程序逐字翻译输入,然后将结果放入.txt文件。这几乎就是我目前所拥有的。在

import shelve

s = shelve.open("THAI.dat")
entry = input("English word")
define = input("Thai word")
s[entry]=define

text_file = open("THAI.txt", "w+")
trys = input("Input english word")

if trys in s:
    print(s[trys])
    part = s[trys]
    text_file.write(part)

这就是错误出现的地方。我认为问题是这个部分是一个列表,应该是一个字符串,才能写入.txt文件。我该怎么办。我只是个初学者,所以我可能缺少一些基本的东西。这是错误。在

^{pr2}$

最后我希望能做到这一点

text_file.readlines() 

然后甚至可以进入文本文件查看翻译。在


Tags: 模块文件texttxtinput错误openshelve
1条回答
网友
1楼 · 发布于 2024-06-08 10:03:44

从您的评论来看,除了没有s[entry]=[define],我认为您需要使用正确的编解码器读写一个泰文文件。在

假设文件thai.dat是用UTF-8(假设)编写的,那么现在需要比较使用相同编解码器的字符串和使用相同编解码器编写数据文件的字符串。在

首先,从命令shell中尝试以下行:

python -c 'import sys; print sys.getdefaultencoding()'

如果它打印ascii,那么您可能需要将默认编码设置为UTF-8,否则字符串比较将无法正常工作。在

另外,您需要以UTF-8模式打开输出文件,如下所示:

^{pr2}$

然后像往常一样写这个文件。在

相关问题 更多 >