为什么if语句被python忽略

为什么if语句被python忽略,python,if-statement,Python,If Statement,我将目录中的文件名与从excel特定工作表生成的文件名列表进行比较,然后将具有匹配文件名的文件移动到名为“moved_files”的新文件夹中。为什么我的if语句会被忽略,并且在代码运行和打印结束时不会移动任何文件 在最后一个if语句之前,我使用了print语句来查看pdb_文件名和filename_gen,并且一些filename_gen与pdb_文件名匹配。尽管目录中有结尾带有.pdb的文件,但print语句不会打印 这是密码 for filename_gen in list_filenam

我将目录中的文件名与从excel特定工作表生成的文件名列表进行比较,然后将具有匹配文件名的文件移动到名为“moved_files”的新文件夹中。为什么我的if语句会被忽略,并且在代码运行和打印结束时不会移动任何文件

在最后一个if语句之前,我使用了print语句来查看pdb_文件名和filename_gen,并且一些filename_gen与pdb_文件名匹配。尽管目录中有结尾带有.pdb的文件,但print语句不会打印

这是密码

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

我希望在名称完全匹配时看到文件移动,例如files\xTMEM16A\u dimer\u OPM\u PI4P\500\u 4.pdb和files\xTMEM16A\u dimer\u OPM\u PI4P\500\u 4.pdb

您不是在精确比较两个文件名,而是在比较两个打印调用,结果会返回True。
如果filename\u gen==pdb\u filename:

欢迎使用StackOverflow。请按照您创建此帐户时的建议,阅读并遵循帮助文档中的发布指南。适用于这里。在您发布MCVE代码并准确指定问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中,并重现您指定的问题。首先,print返回None,因此您对两个print调用的比较将始终返回True。你没有比较过文件名。如果您怀疑某个特定的If被忽略,那么在比较之前,您的值跟踪在哪里?请看这个可爱的博客寻求帮助。这篇文章有很多多余的代码,并且没有显示对问题至关重要的值。请更新。可能list_clusternumber为空,因为如果printfilename_gen==printpdb_filename,则ws.nrows:不完全确定此行的作用,但它将比较两个打印函数,而不是它们正在打印的值。如果None==None:的计算结果为True,则该值将始终变为True。如果您试图查看这两个名称是否相等,请尝试使用If filename_gen==pdb_filename:。