如何使用 Python 或 c# 替换文件夹中所有文件中的驼峰式大小写?
How to replace camelCasing in all files in a folder using Python or c#?
我有一个文件夹混合使用驼峰式和非驼峰式文件名。我在 Python 中使用它来删除下划线,并希望我可以轻松调整它以将 'camelCaseExample' 替换为 'camel Case Example':
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)
任何人都可以帮助我编辑它以使其适用于正则表达式吗?
我已经试过了,但没有成功:
newname = path.replace('%[A-Z][a-z]%', ' ')
我也可以使用 c# 解决方案,如果这样更容易的话
您可能想使用 re
库尝试正则表达式。
import re
new_name = re.sub("(?=[A-Z])", " ", "testFileName")
print(new_name)
将输出:
test File Name
如果你想让它在这之后变成小写,你可以调用
new_name = new_name.lower()
正则表达式正在做的是寻找大写字母之前的任何点,并在那里替换 space。这 regex101 link 将有助于更好地解释它。
我有一个文件夹混合使用驼峰式和非驼峰式文件名。我在 Python 中使用它来删除下划线,并希望我可以轻松调整它以将 'camelCaseExample' 替换为 'camel Case Example':
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)
任何人都可以帮助我编辑它以使其适用于正则表达式吗?
我已经试过了,但没有成功:
newname = path.replace('%[A-Z][a-z]%', ' ')
我也可以使用 c# 解决方案,如果这样更容易的话
您可能想使用 re
库尝试正则表达式。
import re
new_name = re.sub("(?=[A-Z])", " ", "testFileName")
print(new_name)
将输出:
test File Name
如果你想让它在这之后变成小写,你可以调用
new_name = new_name.lower()
正则表达式正在做的是寻找大写字母之前的任何点,并在那里替换 space。这 regex101 link 将有助于更好地解释它。