2013-04-17 7 views
0

У меня следующие результаты заданы как переменные. Мне нужно удалить все пустые строки, прежде чем я смогу сделать словарь. Что такое простая команда, которую я могу запустить для переменной, чтобы удалить все пустые строки, которые могут содержаться в этой переменной. Ниже приведен пример вывода моей переменной:Удалить все пустые строки из списка python

DeviceName = device1 
ClientName = myclient 
RegionName = west 
PrimaryIP = 1.1.1.1 
OsVersionName = Microsoft Windows 7 Enterprise 
AccessMethod = None 
AccessIP = None 
Port = None 


DeviceName = device2 
ClientName = myclient 
RegionName = None 
PrimaryIP = 1.1.1.2 
OsVersionName = Microsoft Windows 7 Enterprise 
AccessMethod = None 
AccessIP = None 
Port = None 

В начале также есть пустое место. Я пробовал несколько разных способов, но они только, кажется, удаляют первую пустую строку. Мне нужно удалить любые и все пустые строки, которые могут появиться в моих результатах.

ответ

2

Я не уверен, но это может быть то, что вы хотите:

>>> text = '''DeviceName = device1 
ClientName = myclient 
RegionName = west 
PrimaryIP = 1.1.1.1 
OsVersionName = Microsoft Windows 7 Enterprise 
AccessMethod = None 
AccessIP = None 
Port = None 


DeviceName = device2 
ClientName = myclient 
RegionName = None 
PrimaryIP = 1.1.1.2 
OsVersionName = Microsoft Windows 7 Enterprise 
AccessMethod = None 
AccessIP = None 
Port = None''' 
>>> text = '\n'.join(line for line in text.splitlines() if line) 

Но было бы гораздо лучше просто игнорировать пробелы линии, как вы создаете свой словарь, используя выражение генератора:

>>> lines = (line for line in text.splitlines() if line) 
0
txt = """DeviceName = device1 
ClientName = myclient 
RegionName = west 
PrimaryIP = 1.1.1.1 
OsVersionName = Microsoft Windows 7 Enterprise 
AccessMethod = None 
AccessIP = None 
Port = None 


DeviceName = device2 
ClientName = myclient 
RegionName = None 
PrimaryIP = 1.1.1.2 
OsVersionName = Microsoft Windows 7 Enterprise 
AccessMethod = None 
AccessIP = None 
Port = None""" 

print('\n'.join([i for i in txt.split('\n') if i])) 

Выход:

DeviceName = device1 
ClientName = myclient 
RegionName = west 
PrimaryIP = 1.1.1.1 
OsVersionName = Microsoft Windows 7 Enterprise 
AccessMethod = None 
AccessIP = None 
Port = None 
DeviceName = device2 
ClientName = myclient 
RegionName = None 
PrimaryIP = 1.1.1.2 
OsVersionName = Microsoft Windows 7 Enterprise 
AccessMethod = None 
AccessIP = None 
Port = None 
+0

I не имеют понятия, но по какой-то причине это не работает для меня. Когда я копирую ваш код точно, он работает, но когда я добавляю его в свой код, который я использую, он выводится с пробелами. Прежде чем я получу результат выше, я делаю несколько разных заметок и одну полосу, чтобы закончить вывод выше. Есть ли в любом случае, что они каким-то образом влияют на строку и не позволяют ее изменить позже? – cashman04

Смежные вопросы