Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在遵守PEP8的同时编写长os.path.join链_Python_Pep8 - Fatal编程技术网

Python 如何在遵守PEP8的同时编写长os.path.join链

Python 如何在遵守PEP8的同时编写长os.path.join链,python,pep8,Python,Pep8,我正在使用一长串来生成路径(它确保该路径在任何操作系统上都能工作) “元数据”:os.path.join(BASE_DIR,os.path.join('ServiceProvider',os.path.join('config',os.path.join('metadata',os.path.join('gmail_metadata.xml')))), 我想用PEP8的方式把它分成多行,但我似乎无法做到这一点 我尝试了几件事: “元数据”:os.path.join(BASE\u DIR, os

我正在使用一长串来生成路径(它确保该路径在任何操作系统上都能工作)

“元数据”:os.path.join(BASE_DIR,os.path.join('ServiceProvider',os.path.join('config',os.path.join('metadata',os.path.join('gmail_metadata.xml')))),
我想用PEP8的方式把它分成多行,但我似乎无法做到这一点

我尝试了几件事:

“元数据”:os.path.join(BASE\u DIR,
os.path.join('ServiceProvider',
join('config',
os.path.join('元数据',
join('gmail_metadata.xml'),',
将为视觉缩进PEP8(E128)获取缩进下的PEP8错误
续行

“元数据”:os.path.join(基本目录,os.path.join('ServiceProvider'),
os.path.join('config',os.path.join('metadata'),
join('gmail_metadata.xml'),',
这实际上是PEP8 autofix所做的,我得到的
行太长
错误


如果在这种情况下无法修复PEP8错误,我仍然想知道您将如何修复

您可以列出所有要加入的路径,并使用列表解包(中的更多详细信息)解包所有参数并将其传递给
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)

您可以列出所有要加入的路径,并使用列表解包(中的更多详细信息)解包所有参数并将其传递给
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)
该模块将允许您以有趣且灵活的方式链接内容

如果要使用
os.path
模块或
pathlib
中的
joinpath
,则不必嵌套联接,一个就足够了

path = os.path.join(*[BASE_DIR, "ServiceProvider", "config", "metadata", "gmail_metadata.xml"])
# or
path = pathlib.Path("BASE_DIR").join(*["ServiceProvider", "config", "metadata", "gmail_metadata.xml"])
该模块将允许您以有趣且灵活的方式链接内容

如果要使用
os.path
模块或
pathlib
中的
joinpath
,则不必嵌套联接,一个就足够了

path = os.path.join(*[BASE_DIR, "ServiceProvider", "config", "metadata", "gmail_metadata.xml"])
# or
path = pathlib.Path("BASE_DIR").join(*["ServiceProvider", "config", "metadata", "gmail_metadata.xml"])

看一看pathlib模块(标准库)。它更容易用于构建复杂的路径等。看一看pathlib模块(标准库)。用于构建复杂的路径等要简单得多。值得一提的是,从python 3.4开始,pathilb就可用。值得一提的是,从python 3.4开始,pathilb就可用