почему оператор if игнорирует python - PullRequest
0 голосов
/ 21 октября 2019

Я сравниваю имена файлов в каталоге со списком имен файлов, которые я сгенерировал на листе Excel, а затем перемещаю файлы с соответствующими именами файлов в новую папку с именем Move_Files. Почему мой оператор if игнорируется, и файлы не перемещаются, когдакод запускается и печатает «done» в конце?

Я использовал операторы print перед последним оператором if, чтобы увидеть pdb_filename и filename_gen, а некоторые из filename_gen совпадают с pdb_filename. Оператор print не печатает, хотя в каталоге есть файлы с .pdb в конце.

Вот код

for filename_gen in list_filename_gen:
    for pdb_filename in os.listdir(directory):
        if pdb_filename.endswith(".pdb"):
            print(pdb_filename)
            if print filename_gen ==print pdb_filename :
                shutil.move(os.path.join(directory, pdb_filename),'/Users/fififoufa/Desktop/files_moved/%s' % (pdb_filename))
print("done")

Я ожидаю увидеть файлы, перемещенные, когда имена точно совпадают, например, файлы \ xTMEM16A_dimer_OPM_PI4P \ 500_4.pdb и файлы \ xTMEM16A_dimer_OPM_PI4P \ 500_4.pdb

1 Ответ

1 голос
/ 21 октября 2019

Вы не совсем сравниваете два имени файла, вы вместо этого сравниваете два вызова печати, которые возвращали бы True. if filename_gen == pdb_filename:

...