从中排除一些文件手术室步行()

2024-05-21 03:23:46 发布

您现在位置:Python中文网/ 问答频道 /正文

在python3中,我希望运行下面的脚本来重命名脚本工作目录中所有子目录中的文件,以便将它们的父文件夹名附加到它们的文件名中。但是这个脚本还处理目录中的.DS\u存储文件,以及.py脚本文件本身。我怎么能不碰那些东西?在

import os
for root, dirs, files in os.walk("."):
    if not files:
        continue
    prefix = os.path.basename(root)
    for f in files:
        print(prefix)
        os.rename(os.path.join(root, f), os.path.join(root, "{}_{}".format(prefix, f)))

Tags: 文件pathin目录脚本文件夹forprefix
2条回答

您应该能够检查f变量是以“.”开头还是以“.py”结尾。在

大概是这样的:

f.startswith('.')

然后您可以将扩展名与以下内容进行比较:

name, extension = os.path.splitext(f)
if extension in extensions_to_ignore:
    continue

您还可以使用list comprehensions来实现这一点,这可能会使lil变短:

for f in [i for i in files if not (i.startswith(".") or i.endswith(".py"))]:
    print(prefix)
    os.rename(os.path.join(root, f), os.path.join(root, "{}_{}".format(prefix, f)))

相关问题 更多 >