如何在 API 调用中过滤带有扩展名的文件名?
How to filter filenames with extension on API call?
我正在使用 python confluence API 从 confluence 页面下载附件,我只需要下载扩展名为 .mpp
的文件。尝试使用 glob
和直接参数但没有用。
这是我的代码:
file_name = glob.glob("*.mpp")
attachments_container = confluence.get_attachments_from_content(page_id=33110, start=0, limit=1,filename=file_name)
print(attachments_container)
attachments = attachments_container['results']
for attachment in attachments:
fname = attachment['title']
download_link = confluence.url + attachment['_links']['download']
r = requests.get(download_link, auth = HTTPBasicAuth(confluence.username,confluence.password))
if r.status_code == 200:
if not os.path.exists('phoenix'):
os.makedirs('phoenix')
fname = ".\phoenix\" +fname
glob.glob()
对您的 local 文件夹进行操作。所以您不能将其用作 get_attachments_from_content()
的过滤器。另外,不要指定 limit
of 因为那只会让你 one/the 第一个附件。指定一个上限或任何默认值将包括所有这些。 (您可能需要对结果进行分页。)
但是,您可以在下载每个附件之前通过检查 title
来排除不需要的文件,您拥有 fname = attachment['title']
.
attachments_container = confluence.get_attachments_from_content(page_id=33110, limit=1000)
attachments = attachments_container['results']
for attachment in attachments:
fname = attachment['title']
if not fname.lower().endswith('.mpp'):
# skip file if it's not got that extension
continue
download_link = ...
# rest of your code here
此外,您的代码看起来像 ,但您已经更改了它的实际“下载”部分。因此,如果您的下一个 Whosebug 问题是“如何从 confluence 下载文件”,请使用该答案的代码。
我正在使用 python confluence API 从 confluence 页面下载附件,我只需要下载扩展名为 .mpp
的文件。尝试使用 glob
和直接参数但没有用。
这是我的代码:
file_name = glob.glob("*.mpp")
attachments_container = confluence.get_attachments_from_content(page_id=33110, start=0, limit=1,filename=file_name)
print(attachments_container)
attachments = attachments_container['results']
for attachment in attachments:
fname = attachment['title']
download_link = confluence.url + attachment['_links']['download']
r = requests.get(download_link, auth = HTTPBasicAuth(confluence.username,confluence.password))
if r.status_code == 200:
if not os.path.exists('phoenix'):
os.makedirs('phoenix')
fname = ".\phoenix\" +fname
glob.glob()
对您的 local 文件夹进行操作。所以您不能将其用作 get_attachments_from_content()
的过滤器。另外,不要指定 limit
of 因为那只会让你 one/the 第一个附件。指定一个上限或任何默认值将包括所有这些。 (您可能需要对结果进行分页。)
但是,您可以在下载每个附件之前通过检查 title
来排除不需要的文件,您拥有 fname = attachment['title']
.
attachments_container = confluence.get_attachments_from_content(page_id=33110, limit=1000)
attachments = attachments_container['results']
for attachment in attachments:
fname = attachment['title']
if not fname.lower().endswith('.mpp'):
# skip file if it's not got that extension
continue
download_link = ...
# rest of your code here
此外,您的代码看起来像