Как добавить тот же номер к той же строке в Python? - PullRequest
0 голосов
/ 11 мая 2019

Я хочу присвоить одно и то же число тому же имени строки и сохранить его в текстовом файле.

Например, если из имени файла есть несколько строк с именем "Ball", я дам эту строку с номером 0. В другом примере, если у меня есть несколько строк с именем "Square" из имени файла, я дам эту строку с номером 1. И так далее.

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

with open("check.txt", "w") as a:
    for path, subdirs, files in os.walk(path):
        for i, filename in enumerate(files):

            #the filename have underscore to separate the space
            #for example Ball_red_move

            mylist = filename.split("_") 

            #I tried to take the first string name only after splitting, here 
            #for example "Ball"

            k = mylist[0]

            #After this I don't have idea to add number when the string name 
            #is same and also save it to txt file with the directory name

Это мой ожидаемый результат:

Check/Ball_red_move_01 0

Check/Ball_red_move_02 0

Check/Ball_red_move_03 0


Check/Square_jump_forward_01 1

Check/Square_jump_forward_02 1

Check/Square_jump_forward_03 1

1 Ответ

1 голос
/ 11 мая 2019

Вы можете сделать что-то вроде этого:

Подготовьте словарь для сопоставления строки с некоторыми номерами маркировки и проверьте, присутствует ли строка.

object_map = {'Ball': 0, 'Square': 1}

def get_num_from_string(x):
    for i in object_map:
        if i in x:
            return object_map[i]

A = ['Check/Ball_red_move_01', 'Check/Square_jump_forward_01']

for i in A:
    print(i + ' '+str(get_num_from_string(i)))

Это производит

Check/Ball_red_move_01 0
Check/Square_jump_forward_01 1

Несколько вещей, на которые вы должны обратить внимание: что вы хотите сделать, чтобы ни одна из строк не появлялась, а также что вы хотите делать, если появляется несколько строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...