python - 忽略os.listdir()中的目录

时间:2014-11-28 20:43:39

标签: python python-2.7

我有以下代码段 -

runbooksrc_files = os.listdir(runbooksrc)
for file_name in runbooksrc_files:
    full_file_name = os.path.join(runbooksrc, file_name)
    if (os.path.isfile(full_file_name)):
        shutil.copy(full_file_name, runbookdest)
        logging.info ("copying " + file_name)
    else:
        logging.warning ("unable to copy " + file_name)
        sys.exit(2)

它失败了,因为在目录中是另一个我希望它忽略的子目录。如何在执行列表时告诉os.listdir忽略目录?

2 个答案:

答案 0 :(得分:1)

您可以在完成清单之前过滤清单。

runbooksrc_files = [i for i in os.listdir(runbooksrc) if not os.path.isdir(i)]

答案 1 :(得分:0)

这是答案 -

runbooksrc_files = os.listdir(runbooksrc)
for file_name in runbooksrc_files:
    if os.path.isfile(os.path.join(runbooksrc, file_name)):
        full_file_name = os.path.join(runbooksrc, file_name)
        if (os.path.isfile(full_file_name)):
            shutil.copy(full_file_name, runbookdest)
            logging.info ("copying " + file_name)
        else:
            logging.warning ("unable to copy " + file_name)

扫描文件夹后,在复制前检查文件是否为文件。