В алфавитном порядке перечислять файлы в каталогах с атрибутами - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь перечислить в алфавитном порядке два списка файлов, основанных на разных каталогах.

Один список - это файлы в моем каталоге, используя следующий код:

import os
file_list = os.listdir('./')
for x in file_list:
    print(x)

, которыйвернет

file_b.py
file_c.py
file_d.txt

Проблема в том, что один список исходит из репозитория github

from github import Github
g = Github("token")
repo = g.get_repo("Name/Repo")
for content in repo.get_contents("files"):
    print(content.name)

, который вернет

File_a.py
File_b.c
File_c.txt
File_d.py

Пока я использую zip длясделайте следующее:

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))

Теперь проблема в том, что в моем списке содержимого есть атрибут ".name", в то время как у моего редактора ОС нет

Так что яЯ хотел бы получить это:

                                    [0] file_a.py                                    
                                    [1] file_b.py                                    
                                    [2] file_c.py   
                                    [3] file_d.py                                 

Однако, что я получаю:

                                    [0] file_a.py                                    
                                    [0] file_b.py                                    
                                    [1] file_d.py                                    
                                    [1] file_c.py                                    

Я не уверен, как бы я это исправить?Есть ли способ сортировки и перечисления двух списков с атрибутами при сохранении согласованности числа?И в то же время упорядочить его по алфавиту?

1 Ответ

2 голосов
/ 27 мая 2019

Вы должны создать и отсортировать список имен файлов перед итерацией

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))
...