Python 包含 Windows 路径的注释的编码错误
Python encoding errors from comments containing Windows paths
我想在 python 脚本注释中包含 Windows 路径,而不导致编码错误。
如果我在注释中包含 Windows 路径,有时会出现编码错误,例如,“UnicodeDecodeError:'utf-8' 编解码器无法解码位置 4612 中的字节 0xa6:无效开始字节".
我发现一篇“文章”表明在评论中包含 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 路径格式可以包含在评论中,而其他四个路径格式不能包含在评论中。
我的问题:
- 我可以做些什么来格式化评论,这样我就不必在每个反斜杠后插入 space 了吗?
- 如果对可包含在评论中的文本有其他限制,我在哪里可以找到这些限制的列表?
- 在哪里可以找到识别和解释限制原因的规则?
非常欢迎任何关于如何找到答案的建议。
谢谢,
马克
三引号字符串不是评论;这是一个 可以 变成 Docstring:
的字符串
A docstring is a string literal that occurs as the first statement
in a module, function, class, or method definition. Such a docstring
becomes the __doc__
special attribute of that object.
示例:
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)
结果:.\SO553726.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
我想在 python 脚本注释中包含 Windows 路径,而不导致编码错误。
如果我在注释中包含 Windows 路径,有时会出现编码错误,例如,“UnicodeDecodeError:'utf-8' 编解码器无法解码位置 4612 中的字节 0xa6:无效开始字节".
我发现一篇“文章”表明在评论中包含 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 路径格式可以包含在评论中,而其他四个路径格式不能包含在评论中。
我的问题:
- 我可以做些什么来格式化评论,这样我就不必在每个反斜杠后插入 space 了吗?
- 如果对可包含在评论中的文本有其他限制,我在哪里可以找到这些限制的列表?
- 在哪里可以找到识别和解释限制原因的规则?
非常欢迎任何关于如何找到答案的建议。
谢谢, 马克
三引号字符串不是评论;这是一个 可以 变成 Docstring:
的字符串A docstring is a string literal that occurs as the first statement in a module, function, class, or method definition. Such a docstring becomes the
__doc__
special attribute of that object.
示例:
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)
结果:.\SO553726.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