gpt4 book ai didi

python - 通过 python 发送命令时出现类型错误

转载 作者:太空宇宙 更新时间:2023-11-03 16:26:27 25 4
gpt4 key购买 nike

我正在尝试使用 bleualign ( https://github.com/rsennrich/Bleualign ) 来对齐某些 .txt 文件的句子。该工具的工作方式是通过以下方式在终端中发送命令:

python ../../Bleualign/bleualign.py -s circle_en-us_pre_aligned.txt -t circle_pt-br_pre_aligned.txt --srctotarget - -o output

文件的名称特定于我正在做的事情。如果我直接在终端上使用它,这就有效。

但是,当我尝试通过 python 执行此操作时,

def align_sentences(folder_name, src_lang, trgt_lang):

string = u"python ../../Bleualign/bleualign.py -s "+\
folder_name+u"_"+src_lang+u"_pre_align.txt "+\
u"-t "+folder_name+u"_"+trgt_lang+u"_pre_align.txt "+\
u"--srctotarget -"+\
u" -o outputfile"


os.system(string)

当我:

align_sentences(u"circle",u"en-us",u"pt-br")

我得到:

Traceback (most recent call last):


File "../../Bleualign/bleualign.py", line 14, in <module>
a = Aligner(options)



File "/home/goncalo/Bleualign/bleualign/align.py", line 159, in __init__
self._inputObjectFromParameter(self.options['srcfile'])
File "/home/goncalo/Bleualign/bleualign/align.py", line 198, in _inputObjectFromParameter
inputObject = self._stringArray2stringIo(parameter)
File "/home/goncalo/Bleualign/bleualign/align.py", line 187, in _stringArray2stringIo
return io.StringIO('\n'.join([line.rstrip() for line in stringArray]))
TypeError: initial_value must be unicode or None, not str

如您所见,我尝试通过在字符串前添加“u”将字符串转换为 unicode。我也在没有 u 的情况下完成了它,使用 unicode(),尝试了 .decode()...

出了什么问题?

最佳答案

这似乎是 Bleualign 中的一个错误。当前行 https://github.com/rsennrich/Bleualign/blob/master/bleualign/align.py#L187作者有:

return io.StringIO('\n'.join([line.rstrip() for line in stringArray]))

这最终会在__init__这里获取选项参数https://github.com/rsennrich/Bleualign/blob/master/bleualign/align.py#L159

它传递一个字符串“srcfile”,它不是unicode字符串。因此,join 函数将两个非 unicode 字符串组合起来,生成另一个被 io.StringIO 拒绝的非 unicode 字符串。作者可能只需将选项参数更改为 u"srcfile"

我会在他们的 Github 页面上提出问题。

关于python - 通过 python 发送命令时出现类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37948306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com