我试图按字母顺序枚举基于不同目录的两个文件列表。
一个列表是使用以下代码的目录中的文件:
idioma
这将返回
import os
file_list = os.listdir('./')
for x in file_list:
print(x)
问题之一是来自github存储库
file_b.py
file_c.py
file_d.txt
哪个会返回
from github import Github
g = Github("token")
repo = g.get_repo("Name/Repo")
for content in repo.get_contents("files"):
print(content.name)
目前,我正在使用zip进行以下操作:
File_a.py
File_b.c
File_c.txt
File_d.py
现在的问题是,我的内容列表中有一个“ .name”属性,而我的操作系统目录却没有
所以我想得到的是:
from github import Github
import os
g = Github("token")
repo = g.get_repo("Name/Repo")
content = repo.get_contents("files")
for elt, (x, y) in enumerate(zip(content, os.listdir('./'))):
if x.name.endswith('.py'):
print('[{}] {}'.center(79).format(str(elt), x.name))
if y.endswith('.py'):
print('[{}] {}'.center(79).format(str(elt), y))
但是我得到的是:
[0] file_a.py
[1] file_b.py
[2] file_c.py
[3] file_d.py
我不确定该如何解决?无论如何,要在保持数量一致的同时对带有属性的两个列表进行排序和枚举?并同时按字母顺序排序?
答案 0 :(得分:2)
您应该在迭代之前创建文件名列表并对其进行排序
import os
g = Github("token")
repo = g.get_repo("Name/Repo")
file_names = repo.get_contents("files")
file_names.extend([f.name for f in os.listdir('./')])
for index, file_name in enumerate(sorted(file_names)):
if file_name.endswith('.py'):
print('[{}] {}'.center(79).format(str(index), file_name))