Python - заменить все слова в строке, кроме некоторых

Для временных внутренних файлов у них есть 2 варианта

1.

File file; 
file = File.createTempFile(filename, null, this.getCacheDir());

2.

File file
file = new File(this.getCacheDir(), filename);

Обе опции добавляют файлы в кэш приложений и, таким образом, можно очистить, чтобы сделать пространство необходимым, но опция 1 добавит случайное число в конце имени файла, чтобы сохранить файлы уникальными. Он также добавит расширение файла, которое является .tmp по умолчанию, но оно может быть установлено на все, используя 2-й параметр. Использование случайного числа означает, что, несмотря на указание имени файла, оно не остается таким же, как число добавляется вместе с расширением суффикса / файла (.tmp по умолчанию), например, вы указываете свое имя файла как internal_file и выходите как internal_file1456345.tmp. Если вы можете указать расширение, вы не можете указать добавленный номер. Однако вы можете найти имя файла, которое оно генерирует с помощью file.getName();, но вам нужно будет его хранить где-нибудь, чтобы вы могли использовать его, когда захотите, например, удалить или прочитать файл. Поэтому по этой причине я предпочитаю второй вариант, так как имя файла, которое вы указываете, является созданным именем файла.

0
задан user1403546 18 January 2019 в 09:02
поделиться

1 ответ

Одним из подходов было бы использование регулярного выражения для сопоставления отдельных слов, а затем передача обратного вызова в re.sub() для замены на xxxx, если слово отсутствует в списке.

import re

txt = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut ac massa arcu.'
keep = ['amet', 'ac']

print(re.sub(r'\b\w+\b', lambda w: w.group() if w.group() in keep else 'xxxx', txt))
0
ответ дан SpghttCd 18 January 2019 в 09:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: