我发现了一个包含大量Python2文件的repo,其中包含一个将它们转换为python3的脚本。但是,当我运行它时,会出现以下错误:
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()
问题在于:
尝试使用原始字符串:
\U
转义序列是在python3中引入的,这说明脚本在python2中工作。但是在处理文本窗口路径时,应该始终使用原始字符串。你知道吗只需使用
os.path.sep
和os.path.join
来构建路径,而不是硬编码的字符串。你知道吗否则
/
也会起作用。你知道吗相关问题 更多 >
编程相关推荐