Python正则表达式:将"ThisFileName.txt"转换为"This File Name.txt"

Jim*_*Jim 2 python regex

我试图在每个大写字母之前添加一个空格,除了第一个大写字母.

这是我到目前为止所拥有的,以及我得到的输出:

>>> tex = "ThisFileName.txt"
>>> re.sub('[A-Z].', ' ', tex)
' his ile ame.txt'
Run Code Online (Sandbox Code Playgroud)

我想:'这个文件Name.txt'

(如果我还能摆脱.txt,那会很好,但我可以在单独的操作中做到这一点.)

Tri*_*ych 9

这里的关键概念是正则表达式中的反向引用:

import re
text = "ThisFileName.txt"
print re.sub('([a-z])([A-Z])', r'\1 \2', text)
# Prints: "This File Name.txt"
Run Code Online (Sandbox Code Playgroud)

我建议以可靠的方式取出'.txt' os.path.splitext()

import os
filename = "ThisFileName.txt"
print os.path.splitext(filename)
# Prints: ('ThisFileName', '.txt')
Run Code Online (Sandbox Code Playgroud)