如何从文件路径中删除多个撇号?

问题描述 投票:0回答:1

我的目标是删除目录中所有文件路径中的所有单引号。在 Windows 中工作。

序言代码:

import os
import re

directory = "/home/oem/Documents/test"

以下内容不起作用。它删除包含撇号的整个文件。也无法删除

ord
并替换
"'"

def remove_non_ascii_1(text):

    return ''.join(i for i in text if ord(i) == 39)

[os.rename(os.path.join(dp, f), remove_non_ascii_1(os.path.join(dp, f))) for dp, dn, filenames in os.walk(directory) for f in filenames]

当有一个撇号时(即名为crazy'yeah.doc的文件更改为crazyyeah.doc,以下内容有效。但当路径中有多个撇号时(即crazy'yeah'yeah.doc),它不起作用))

def remove_apstrophes(text):

    return re.sub(r"(^.*)(')(.*$)", r"\1\3", text)


[os.rename(os.path.join(dp, f), remove_apstrophes(os.path.join(dp, f))) for dp, dn, filenames in os.walk(directory) for f in filenames]

我尝试添加一些更多的捕获组,但这不起作用-crazy'yeah'yeah.doc 保留所有撇号。

def remove_apstrophes(text):

    return re.sub(r"(^.*)(')?.*(')?.*(')?.*(')?.*(.*$)", r"\1\6", text)

[os.rename(os.path.join(dp, f), remove_apstrophes(os.path.join(dp, f))) for dp, dn, filenames in os.walk(directory) for f in filenames]

提前感谢您的宝贵时间

python regex directory apostrophe
1个回答
0
投票

除非您想强制执行正则表达式,否则此代码可以实现您想要做的事情:

def remove_apostrophes(text):
    return text.replace("'", "")
© www.soinside.com 2019 - 2024. All rights reserved.