我有以下代码段 -
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忽略目录?
答案 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)
扫描文件夹后,在复制前检查文件是否为文件。