Благодаря Брэму-ванрою, который направил меня на раздевание / разделение - раньше я об этом не думал.
with open(refname, "r") as file:
for line in file:
line = line.split('#', 1)[0]
print(line)
будет делать то, что я хочу. Разделение строки на знак фунта и сохранение только первой части.
Другая версия, которая избавляет от нескольких пустых строк, но использует регулярное выражение:
with open(refname) as file:
for line in file:
line = line.split('#', 1)[0]+"\n"
line = re.sub(r'\n+', '\n',line)
if line.strip():
list.append(line)