2016-09-01 8 views
0

Я делаю в python файл истории, чтобы пользователь помещал URL-адрес, и после этого программа записывает URL-адрес в txt-файле и по той же ссылке, время, когда пользователь вводит веб-сайт ,Заменить часть определенной строки

Так что мой TXT, как показано ниже:

- google.com 14:30 
- yahoo.com 17:06 
- apple.com 23:02 

Я хочу создать функцию, так что пользователь поставил URL, который хочет изменить в параметре время будет изменено с текущим временем. Проблема заключается в том, что я делаю эту функцию, но когда я вижу в текстовом файле у меня есть что-то вроде этого

google.com current_time 14:30 

Так что я хочу знать, кто удалить 14:30 из файла TXT INPLACE. Спасибо!

Это моя функция:

def Update(link): 
    for line in fileinput.input("history.txt", inplace=True): 
     localtime = time.asctime(time.localtime(time.time())) 
     print line.rstrip().replace(link, link+ localtime) 
+0

попробовать 'line.rstrip(). Заменить (линия, ссылка + LocalTime)' вместо 'line.rstrip(). Заменить (ссылка, ссылка + МестноеВремя)'. Ваш код заменяет только часть ссылки на строку, а не всю строку. – UnholySheep

+1

Я предлагаю использовать базу данных, хранилище ключей или модуль 'shelve' вместо обычного текстового файла. –

+0

@UnholySheep: ваш код не работает – Ronyco

ответ

0

Если вы копируете список без последнего элемента вы получите правильный ответ?

def Update(link): 
    for line in fileinput.input("history.txt", inplace=True): 
     newline = line[:-1] 
    return newline 
0

Вы можете использовать регулярные выражения.

import re 

def Update(link): 
    for line in fileinput.input("history.txt", inplace=True): 
     localtime = time.asctime(time.localtime(time.time())) 
     print re.sub('\d{2}:\d{2}', localtime, line) 
+0

Ваш код заменяет все время всех ссылок, и я хочу только ссылку в параметре – Ronyco

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