2

我试图通过导入脚本然后按下运行按钮来通过 Excel 中的 DataNitro 运行 python 脚本。我收到此错误消息:

Traceback (most recent call last):
  File "27/scriptStarter.py",line 97,in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe5' in position 52:
 ordinal not in range(128)

因此,我只是使用 %paste 函数将脚本复制粘贴到 DataNitro 的 Python shell 中,并且它起作用了。

为什么它在 shell 中而不是在脚本中工作?当我寻找它时,我什至没有看到文件 27/scriptstarter.py。我对这些东西真的不是很了解,但是是unicode和ascii之间的翻译出错了吗?

下面是我的小脚本,如果对你们有帮助的话

i=3
while i<4051:
    if 337 <=Cell(i,15).value<=23 and Cell(i,3).value>=1:
        Cell(i,19).value=1
    if 23 <=Cell(i,15).value<=68 and Cell(i,4).value>=1:
        Cell(i,19).value=1
    if 68 <=Cell(i,15).value<=113 and Cell(i,5).value>=1:
        Cell(i,19).value=1
    if 113 <=Cell(i,15).value<=158 and Cell(i,6).value>=1:
        Cell(i,19).value=1
    if 158 <=Cell(i,15).value<=203 and Cell(i,7).value>=1:
        Cell(i,19).value=1
    if 203 <=Cell(i,15).value<=248 and Cell(i,8).value>=1:
        Cell(i,19).value=1
    if 248 <=Cell(i,15).value<= 293 and Cell(i,9).value>=1:
        Cell(i,19).value=1
    if 293 <=Cell(i,15).value<=337 and Cell(i,10).value>=1:
        Cell(i,19).value=1
    i=i+1
4

1 回答 1

1

您粘贴的脚本中似乎没有任何 unicode,因此它应该可以毫无问题地运行。如果您在导入时仍然无法运行它,请尝试将此行放在文件的顶部:

# -*- coding: utf-8 -*-

这告诉 Python 源文件有 unicode 编码,而不是 ascii,应该可以解决这个问题。

于 2013-08-13T22:37:17.967 回答