Я ищу способ по существу убрать лишний период, если значение равно null или None. Если myvar не существует, он должен распечатать abc.xyz
myvar = "def"
print "abc.{0}.xyz".format(myvar)
abc.def.xyz
myvar = ""
print "abc.{0}.xyz".format(myvar)
abc..xyz






Если символ присутствует в исходной строке, он будет включен независимо от формата вызова для него. Что нужно сделать, так это изменить ввод так, чтобы он включал любой дополнительный символ, когда присутствует предполагаемое значение. Рассмотрим следующее (инкапсулированное в функции в качестве демонстрации):
def demo(value):
print("abc.{0}xyz".format(value + '.' if value else ''))
Пример использования:
>>> demo('def')
abc.def.xyz
>>> demo('')
abc.xyz
Вы можете добавить точку к myvar.
myvar = (myvar + '.') if myvar else myvar
Я бы сделал что-то вроде этого:
>>> myvar = ""
>>> print "abc.{0}.xyz".format(myvar) if myvar else "abc.xyz"
abc.xyz
Вы можете заменить все экземпляры двойных точек одним.
myvar = ""
output = "abc.{0}.xyz".format(myvar)
print str.replace(output, "..", ".")
abc.xyz
Что вы хотите, если
myvar- это0?