2016-11-15 5 views
0

Я очень начинаю программист, ища некоторую помощь с тем, что, вероятно, очень простая проблема. Я пытаюсь написать программу, которая будет читать файл .txt, а затем заменить любые слова «e» в них «xxxxx».Заменить слова в строке в python

Вот то, что я до сих пор:

def replace_ewords(text): 
    ntext = text.replace('e', 'xxxxx') 

def main(): 
    filename = "gb.txt" 
    text = readfile(filename) 
    new_text = replace_ewords(text) 
    print(new_text) 

main() 

Может кто-нибудь помочь мне с этим любой дать мне какие-либо critques/указатели?

+1

Сначала ваша функция 'replace_ewords' должна 'return ntext'. – sal

+1

Что делает функция readfile()?? .. Я считаю, что функция replace_ewords() должна быть помещена в функцию, которая пересекает каждую строку в объекте файла ... можете ли вы предоставить больше кодов? – repzero

+0

Вы пытаетесь заменить все слова, содержащие «e» на «xxxxx»? Или вы просто заменяете «e» в каждом слове «xxxxx»? – ecounysis

ответ

0
def replace_ewords(text): 
    words = [] 
    text = text.split(' ') 
    for word in text: 
     if "e" in text: 
      words.append("x"*len(text)) 
     else: 
      words.append(text) 
    return " ".join(words) 
0
with open('filename') as f: # Better way to open files :) 
    line_list = [] 
    for line in file: # iterate line by line 
     word_list = [] 
     for word in line.split() # split each line into words 
      if 'e' in word: 
       word = 'xxxxx'  # replace content if word has 'e' 
      word_list.append(word) # create new list for the word content in new file 
     line_list.append(' '.join(word_list)) # list of modified line 

# write this content to the file 

Одна линия для петель может быть записана в виде списка понимания, как:

[' '.join([('xxxx' if 'e' in word else word) for word in line]) for line in file.readlines()] 
0

один лайнер:

print "\n".join([" ".join([[word, "xxx"]["e" in word] for word in line.split()]) for line in open("file").readlines()]) 
Смежные вопросы