gpt4 book ai didi

python - 用括号替换正则表达式

转载 作者:行者123 更新时间:2023-11-28 21:28:51 24 4
gpt4 key购买 nike

我正在尝试复制文件,

>>> originalFile = '/Users/alvinspivey/Documents/workspace/Image_PCA/spectra_text/HIS/jean paul test 1 - Copy (2)/bean-1-aa.txt'
>>> copyFile = os.system('cp '+originalFile+' '+NewTmpFile)

但必须先替换空格和括号,然后 open 函数才能起作用:

/Users/alvinspivey/Documents/workspace/Image_PCA/spectra_text/HIS/jean\paul\test\1\-\复制\\(2\)/bean-1-aa.txt

空格 ' ' --> '\'括号 '(' --> '\(' 等

替换空格工作:

>>> originalFile = re.sub(r'\s',r'\ ', os.path.join(root,file))

但括号返回错误:

>>> originalFile = re.sub(r'(',r'\(', originalFile)

回溯(最近一次调用最后一次): 文件“”,第 1 行,位于 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/re.py”,第 151 行,在子中 return _compile(pattern, flags).sub(repl, string, count) 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/re.py”,第 244 行,在 _compile 中 引发错误,v # 无效表达式sre_constants.error:括号不平衡

我是否正确替换了括号?

此外,当使用 re.escape() 时,文件不会正确返回。所以它不是一个替代方案。

最佳答案

( 在正则表达式(分组)中具有特殊含义,您必须对其进行转义:

originalFile = re.sub(r'\(',r'\(', originalFile)

或者,因为您不使用正则表达式功能进行替换:

originalFile = re.sub(r'\(','\(', originalFile)

关于python - 用括号替换正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7053780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com