заменить несколько символов для имен папок - PullRequest
0 голосов
/ 01 ноября 2018

Я нахожусь в 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))

Как уже говорилось, он отлично заменяет ':'. Но нет другого персонажа. Как в этом случае заменить несколько символов?

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Это должно работать:

res = ''.join(['_' if letter in '?/"|:*<>' else letter for letter in fe])
print(res)
#__________abcdefg______
0 голосов
/ 01 ноября 2018

Использование regex

import re
fe = '?/"|:*<>?/abcdefg"|:*<>'
ke = re.sub(r'[?/"|:*<>]', '_', fe)

>>> fe
'?/"|:*<>?/abcdefg"|:*<>'

>>> ke
'__________abcdefg______'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...