这是我做的:
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
下划线后面有空格。我该如何解决?
答案 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