首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用xlwing,sys.path时出现语法错误RunPython

使用xlwing,sys.path时出现语法错误RunPython
EN

Stack Overflow用户
提问于 2020-05-18 11:40:34
回答 2查看 665关注 0票数 0

操作系统Windows 10专业版

xlwings、Excel和Python的版本(0.9.0、Office 365、Python 3.8.2)

我是通过VBA使用xlwing的新手。我从VBA和Python上的教程网页中运行了确切的语法,但它给出了如下错误:

代码语言:javascript
复制
  File "<string>", line 1

    import sys, os; sys.path[0:0]=os.path.normcase(os.path.expandvars(r'C:\Users\User\Trial2;C:\Users\User\Trial2\Trial2.zip;C:\Users\User\Anaconda3\')).split(';'); import Trial2;Trial2.main()                                                                                                                                                               

SyntaxError: invalid syntax

我对VBA使用了原始语法,对python使用的语法是这样的:

代码语言:javascript
复制
import xlwings as xw


#@xw.sub  # only required if you want to import it or run it via UDF Server
def main():
    wb = xw.Book.caller()
    wb.sheets[0].range("A1").value = "Hello xlwings!"


#@xw.func
def hello(name):
    return "hello {0}".format(name)


if __name__ == "__main__":
    xw.Book("Trial2.xlsm").set_mock_caller()
    main()

我几乎找不到解决这个问题的任何线索,所以我希望有人能给我一个解决方案

EN

回答 2

Stack Overflow用户

发布于 2020-05-18 13:54:38

这是python的字符串文字中的一个怪异现象。即使使用原始字符串,反斜杠也会转义引号字符,因此r"ends in quote\""是有效的。这也意味着原始字符串不能以单个反斜杠结尾。r"ends in slash\"是一个语法错误。如果需要以反斜杠结束字符串,则不能使用raw。"ends in slash\\"很好。

我不确定失败的字符串来自何处,但您需要将其更改为

代码语言:javascript
复制
import sys, os; sys.path[0:0]=os.path.normcase(os.path.expandvars('C:\\Users\\User\\Trial2;C:\\Users\\User\\Trial2\\Trial2.zip;C:\\Users\\User\\Anaconda3\\')).split(';'); import Trial2;Trial2.main()

请参阅Python Lexical Analysis

即使在原始文字中,引号也可以用反斜杠转义,但反斜杠仍保留在结果中;例如,r"\“是由两个字符组成的有效字符串文字:反斜杠和双引号;r”\“不是有效的字符串文字(即使原始字符串也不能以奇数个反斜杠结尾)。具体而言,原始文字不能以单个反斜杠结尾(因为反斜杠将转义后面的引号字符)。

票数 0
EN

Stack Overflow用户

发布于 2021-05-14 22:58:34

我意识到这是在最初的问题之后很长一段时间,但我也有同样的问题,在任何地方都找不到答案。在尝试之后(比我愿意承认的要长得多),我发现我的问题是我的.xlsm/.py文件名包含一个空格。在没有其他更改的情况下,当我用下划线替换空格时,一切都正常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61862083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档