我正在尝试制作一个简单的翻译器,从搁置模块中的字典中,我可以用英语输入单词,程序逐字翻译输入,然后将结果放入.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文件。我该怎么办。我只是一个初学者,所以我可能缺少一些基本的东西。这是错误。
Traceback (most recent call last):
File "C:UsersAustenDesktopphython funthai translator.py", line 29, in <module>
text_file.write(part)
TypeError: must be str, not list
>>>
最后我希望能够做到这一点
text_file.readlines()
然后甚至可以进入文本文件并查看翻译。
从您的评论中,除了没有s[entry]=[define]
,我认为您需要使用正确的编解码器读写泰语文件。
假设文件thai.dat
是用 UTF-8 编写的(假设),您现在需要使用相同的编解码器比较字符串,并使用相同的编解码器写入数据文件。
首先,从命令外壳中尝试以下行:
python -c 'import sys; print sys.getdefaultencoding()'
如果打印ascii
则可能需要将默认编码设置为 UTF-8,否则字符串比较将无法正常工作。
另外,您需要以 UTF-8 模式打开输出文件,如下所示:
>>>import codecs
>>>f = codecs.open("THAI.txt", "w+", "utf-8")
然后像往常一样写入此文件。