我在Windows和Windows上不喜欢文件夹名称的'/“|:* <>'字符。现在我不想用'_'替换所说的字符。如果我是.replace(':', '_')
似乎没有用与任何其他角色。但无论如何,我想要替换所有上述字符。我尝试了(somestring).replace(':', '_').replace('?', '_')
但它不起作用。
现在怎么样:
with open(unidecode(somestring).replace(':', '_')+'/{0}_{1}.txt'.format(counter, points), 'w+', encoding='utf-8') as outfile: outfile.write('{0}\n\n{1}\n'.format(stringhere, somecontent))
如上所述,它取代':'就好了。但没有其他角色。在这种情况下如何替换多个字符?
使用regex
import re
fe = '?/"|:*<>?/abcdefg"|:*<>'
ke = re.sub(r'[?/"|:*<>]', '_', fe)
>>> fe
'?/"|:*<>?/abcdefg"|:*<>'
>>> ke
'__________abcdefg______'
这应该工作:
res = ''.join(['_' if letter in '?/"|:*<>' else letter for letter in fe])
print(res)
#__________abcdefg______