Python 2to3脚本不起作用-Unicode错误

罗宾·安德鲁斯

我找到了一个包含大量Python2文件的存储库,其中包括一个将其转换为Python 3的脚本。但是,在运行它时出现以下错误:

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 3-4: truncated \UXXXXXXXX escape

我所做的唯一更改是添加了路径,2to3而不是仅添加了路径2to3因为这不在我的路径中。

请问如何使它工作的任何建议?

import os

def makepython3():
    """This is a script to transform all the solutions into 
    Python 3 solutions."""
    files = os.listdir('exercises')

    exfolder = 'exercises'
    ex3folder = 'exercisespy3'

    if not os.path.exists(ex3folder):
        os.mkdir(ex3folder)

    for f in files:
        os.system('cp {} {}'.format(exfolder+os.sep+f, ex3folder+os.sep+f))
        if f.endswith('.py'):
            os.system('"C:\Users\HP\AppData\Local\Programs\Python\Python37-32\Tools\scripts\2to3.py" -w -n --no-diffs {}'.format(ex3folder+os.sep+f))

    print('All done!')

if __name__ == '__main__':
    makepython3()
Pietzcker团队

问题在这里:

os.system('"C:\Users\HP\....
              ^-- interpreted as a \U unicode escape

尝试使用原始字符串:

os.system(r'"C:\Users\HP\....

\U转义序列是在python 3中引入的,它说明该脚本在python 2中有效。但是在处理原义Windows路径时应始终使用原始字符串

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章