Для меня, git worktree - самое большое улучшение с давних времен. Я работаю над разработкой корпоративного программного обеспечения. Там очень часто приходится поддерживать старые версии, как то, что вы выпустили 3 года назад. Конечно, у вас есть ветка для каждой версии, чтобы вы могли легко переключиться на нее и исправить ошибку. Однако переключение дорого, потому что пока вы полностью реорганизовали хранилище и, возможно, создали систему. Если вы переключитесь, ваша среда IDE будет безумной, пытаясь адаптировать настройки проекта.
С помощью worktree вы можете избежать этой постоянной реконфигурации. Оформить эти ветви в отдельных папках с помощью рабочей таблицы. Для каждой ветви у вас есть независимый проект IDE.
Конечно, это могло быть сделано в прошлом путем клонирования репо несколько раз, и это был мой подход до сих пор. Тем не менее, это также означало расходование пространства жесткого диска и еще худшее, чтобы несколько раз получать одни и те же изменения от репо.
Теперь единственной недостающей частью является официальная версия git 2.5 для Windows, но есть надежда, что новый git для окон скоро выйдет: -)
import re
match = {} # create a dictionary of words-to-replace and words-to-replace-with
f = open("filename", "r")
data = f.read() # string of all file content
def replace_all(text, dic):
for i, j in dic.items():
text = re.sub(r"\b%s\b" % i, j, text)
# r"\b%s\b"% enables replacing by whole word matches only
return text
data = replace_all(data, match)
print(data) # you can copy and paste the result to whatever file you like
Вы хотите регулярное выражение. Вы можете использовать токен \b
для соответствия границе слова: т. Е. \bresult\b
будет соответствовать только точному слову «результат».
import re
with open('C:/Users/User/Desktop/Portuguesetranslator.txt') as f:
for l in f:
s = l.split('*')
editor = re.sub(r"\b%s\b" % s[0] , s[1], editor)
\b
s, поэтому вам не нужно иметь их в «базе данных».
– kindall
18 July 2013 в 19:23
\b
до и после каждого слова, которое вы хотите сопоставить, но не на заменяющей строке. Убедитесь, что у вас сырые строки (r'a raw string'
), в противном случае '\b'
интерпретируется как обратное пространство.
– Steven Rumbalski
18 July 2013 в 19:26
Используйте re.sub
:
replacements = {'the':'a',
'this':'that'}
def replace(match):
return replacements[match.group(0)]
# notice that the 'this' in 'thistle' is not matched
print re.sub('|'.join(r'\b%s\b' % re.escape(s) for s in replacements),
replace, 'the cat has this thistle.')
Отпечатки
a cat has that thistle.
Примечания:
re.escape
, чтобы избежать интерпретации их как регулярных выражений. r'\b'
, чтобы убедиться, что совпадения предназначены только для целых слов. Это очень просто. используйте re.sub, не используйте replace.
import re
replacements = {r'\bthe\b':'a',
r'\bthis\b':'that'}
def replace_all(text, dic):
for i, j in dic.iteritems():
text = re.sub(i,j,text)
return text
replace_all("the cat has this thistle.", replacements)
Он напечатает
a cat has that thistle.