删除所有括号并用下划线替换所有空格?

时间:2016-09-30 05:12:17

标签: python string replace

这是我做的:

import re
def demicrosoft (fn):

    fn = re.sub('[()]', '', fn)
    for ch in [' ']:
        fn = fn.replace(ch,"_"+ch)
    return fn
print(demicrosoft('a bad file name (really)')) 


>>> (executing lines 1 to 12 of "<tmp 2>")
a_ bad_ file_ name_ really

下划线后面有空格。我该如何解决?

3 个答案:

答案 0 :(得分:2)

您可以为此链接多个replace

a = 'a bad file name (really)'

>>> a.replace('(', '').replace(')', '').replace(' ', '_')
'a_bad_file_name_really'

答案 1 :(得分:2)

您可以使用str.translate()

执行此操作
>>> table = str.maketrans({'(':None, ')':None, ' ':'_'})
>>> 'a bad file name (really)'.translate(table)
'a_bad_file_name_really'

答案 2 :(得分:1)

&#34; _&#34; + ch 中删除 ch ,如下所示

import re
def demicrosoft (fn):

    fn = re.sub('[()]', '', fn)
    for ch in [' ']:
        fn = fn.replace(ch,"_")
    return fn
相关问题