0

我想在 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 路径格式可以包含在评论中,而其他四种不能包含在评论中。

我的问题:

  1. 我可以做些什么来格式化评论,这样我就不必在每个反斜杠后插入空格?
  2. 如果评论中可以包含其他文本限制,我在哪里可以找到这些限制的列表?
  3. 我在哪里可以找到识别和解释限制原因的规则?

任何有关如何找到答案的建议都将受到欢迎。

谢谢,马克

4

1 回答 1

1

三重引号字符串不是注释;这是一个可以成为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
于 2021-07-30T20:46:50.077 回答