我想在 python 脚本注释中包含 Windows 路径,而不会导致编码错误。
如果我在注释中包含 Windows 路径,有时会出现编码错误,例如“UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa6 in position 4612: invalid start byte”。
我发现了一篇“文章”,其中指出在评论中包含 Windows 路径会触发 unicode 错误,https://programmersought.com/article/28013377080/。
另一方面,有时我可以在注释中包含 Windows 路径,而不会触发 unicode 错误。 我不明白为什么有些 Windows 路径会触发错误,而其他路径不会。
以下是一些会或不会导致编码错误的 Windows 路径示例,如下所示:
'''
OK # E:\Apps\ParticlesByMarc\regularexpression_info_SAVE_aaa_.py
ERROR # E:\Apps\UnitiesByMarc\regularexpression_info_SAVE_aaa_.py
OK # E:\Apps\ UnitiesByMarc\regularexpression_info_SAVE_aaa_.py# File
ERROR # E:\ Apps\ UnitiesByMarc\xxx\regularexpression_info_SAVE_aaa_py
OK # E:\ Apps\ UnitiesByMarc\ xxx\regularexpression_info_SAVE_aaa_py
OK # File E:\ Apps\ UnitiesByMarc\x123x\regularexpression_info_SAVE_aaa_py
'''
我不知道是什么让其中两种 Windows 路径格式可以包含在注释中,而其他四种不能包含在注释中。
我的问题:
非常欢迎任何有关如何找到答案的建议。
谢谢, 马克
答案 0 :(得分:1)
三重引用的字符串不是注释;这是一个可以变成Docstring的字符串:
<块引用>A docstring 是作为第一条语句出现的字符串文字
在模块、函数、类或方法定义中。这样的文档字符串
成为该对象的 __doc__
特殊属性。
示例:
def somefunc(somepar):
r'''
This is a docstring
E:\Apps\ParticlesByMarc\regularexpression_info_SAVE_aaa_.py
E:\Apps\UnitiesByMarc\regularexpression_info_SAVE_aaa_.py
# E:\Apps\UnitiesByMarc\regularexpression_info_SAVE_aaa_.py # File
# E:\Apps\UnitiesByMarc\xxx\regularexpression_info_SAVE_aaa_py
E:\Apps\UnitiesByMarc\xxx\regularexpression_info_SAVE_aaa_py
# File E:\Apps\UnitiesByMarc\x123x\regularexpression_info_SAVE_aaa_py
'''
print('supplied:', somepar, end='\n\n')
'''
This isn't recognized as a docstring (i.e. not assigned to __doc__)
'''
somefunc('par')
help(somefunc)
结果:.\SO\68553726.py
supplied: par
Help on function somefunc in module __main__:
somefunc(somepar)
This is a docstring
E:\Apps\ParticlesByMarc\regularexpression_info_SAVE_aaa_.py
E:\Apps\UnitiesByMarc\regularexpression_info_SAVE_aaa_.py
# E:\Apps\UnitiesByMarc\regularexpression_info_SAVE_aaa_.py # File
# E:\Apps\UnitiesByMarc\xxx\regularexpression_info_SAVE_aaa_py
E:\Apps\UnitiesByMarc\xxx\regularexpression_info_SAVE_aaa_py
# File E:\Apps\UnitiesByMarc\x123x\regularexpression_info_SAVE_aaa_py