我正在使用一长串的os.path.join()来生成路径(它确保该路径在任何OS上均可工作)。
"metadata": os.path.join(BASE_DIR, os.path.join('ServiceProvider',os.path.join('config', os.path.join('metadata',os.path.join('gmail_metadata.xml'))))),
Run Code Online (Sandbox Code Playgroud)
我想以PEP8方式将其分解为多行,但我似乎无法实现。
我尝试了几件事:
"metadata": os.path.join(BASE_DIR,
os.path.join('ServiceProvider',
os.path.join('config',
os.path.join('metadata',
os.path.join('gmail_metadata.xml'))))),
Run Code Online (Sandbox Code Playgroud)
会给我PEP8错误 continuation line under-indented for visual indentpep8(E128)
和
"metadata": os.path.join(BASE_DIR, os.path.join('ServiceProvider',
os.path.join('config', os.path.join('metadata',
os.path.join('gmail_metadata.xml'))))),
Run Code Online (Sandbox Code Playgroud)
这实际上是PEP8 autofix所做的,我得到了line too long错误。
如果在这种情况下无法修复PEP8错误,我仍然想知道您将如何做!
您可以列出要加入的所有路径,并使用列表拆包(PEP-3132中的更多详细信息来解压缩所有参数并将其传递给os.path.join
import os
#List of paths
li = [BASE_PATH,'ServiceProvider', 'config', 'metadata','gmail_metadata.xml']
#Join all paths by unpacking the list
path = os.path.join(*li)
print(path)
Run Code Online (Sandbox Code Playgroud)