代码之家  ›  专栏  ›  技术社区  ›  user3486773

如何使用Python或c替换文件夹中所有文件中的camelCasing?

  •  1
  • user3486773  · 技术社区  · 7 年前

    我有一个文件夹,其中混合了camelCase和非camelCase文件名。我在Python中使用它来删除下划线,并希望可以轻松地调整它,将“camelCaseExample”替换为“camelCaseExample”:

    folder = r"C:/....."
    import os
    pathiter = (os.path.join(root, filename)
        for root, _, filenames in os.walk(folder)
        for filename in filenames
    )
    for path in pathiter:
        newname =  path.replace('_', ' ')
        if newname != path:
            os.rename(path,newname)
    

    有谁能帮我编辑一下,让它为regex工作吗?

    我尝试过这个,但运气不好:

    newname =  path.replace('%[A-Z][a-z]%', ' ')
    

    如果更简单的话,我也可以使用c#解决方案

    1 回复  |  直到 7 年前
        1
  •  2
  •   SCB    7 年前

    您可能想使用 re 图书馆

    import re
    new_name = re.sub("(?=[A-Z])", " ", "testFileName")
    print(new_name)
    

    将输出:

    test File Name
    

    如果在此之后希望它是小写的,可以调用

    new_name = new_name.lower()
    

    正则表达式所做的是查找紧靠大写字母之前的任何点,并在那里替换一个空格。这 regex101 link 将有助于更好地解释它。