2017-01-12 5 views
-1

Я этот файл называется foo.txt и имеет следующее содержание:Как удалить пустую строку из этого файла?

# [empty line here] 
bar 12 
baz 34 

пустая строка вызывается удалить все в этой строке, вот код:

newdict = {} 
with open('foo.txt','r') as f: 
    for line in f: 
     if line.isalpha() == True: 
      splitline = line.split() 
      newdict[(splitline[0])] = ",".join(splitline[1:]) 
removethis = raw_input("Item to be removed: ") 
if removethis in newdict: 
    with open('foo.txt','r') as f: 
     f.read() 
    new = new.replace(removethis, '') 
    with open('foo.txt','w') as f: 
     f.write(new) 
    with open('foo.txt','rw') as g: 
     for line in g: 
      if not line.isspace(): 
       g.write(line) 

Я хочу, чтобы удалить пустая строка из файла, но ничего не происходит.

EDIT: Для тех, кто отмечен это как дубликат, нет, спасибо, я не хочу, регулярное выражение

+2

сделать 'new.replace ('\ N \ N', '\ п')' – inspectorG4dget

+1

вы должны закрыть файл !!! f.close() – Wonka

+1

@wonka Я думал, что «с» автоматически закрывает его – user7091717

ответ

2

Попробуйте это:

with open('data/aa', 'rw') as f, open('data/aa2', 'w') as f2: 
    newf = [a for a in f if a.strip()] 
    f2.writelines(newf) 

Или вы можете сделать это с СЭД, а также (если вы находитесь на Linux):

sed -i '/^\s*$/d' foo.txt 
+0

Не могли бы вы объяснить, что означает sed и '/^\ s * $/d'? – user7091717

+0

@ user7091717 Вы на Linux? – MYGz

+0

nope, я использую Windows – user7091717

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