Код:Как удалить определенную строку из файла с помощью python?
from datetime import datetime,time
from csv import reader
with open('onlyOnce.txt', 'r+') as fonlyOnce:
for f_time, sec_time, dte in filter(None, reader(fonlyOnce, delimiter="_")):
check_stime=f_time.split(":")
Stask_hour=check_stime[0]
Stask_minutes=check_stime[1]
check_stime = datetime.strptime(f_time,"%H:%m").time()
check_etime=sec_time.split(":")
Etask_hour=check_etime[0]
Etask_minutes=check_etime[1]
#check every minute if current information = desired information
now = datetime.now()
now_time = now.time()
date_now = now.date()
if (date_now.strftime("%Y-%m-%d") == dte and time(int(Stask_hour),int(Stask_minutes)) <= now_time <= time(int(Etask_hour),int(Etask_minutes))):
print("this line in range time: "+ f_time)
#delete this line
fonlyOnce.write(" ")
else:
print("Padraic Cunningham")
fonlyOnce.close()
Цель данного кода:
1- петлю на линии в файле
2- проверить, если какой-либо линии, что в диапазоне от текущего времени
3- если да: напечатайте this line in range time: 9:1
и удалите эту строку из того же файла.
4-данные в файле:
7:1_8:35_2016-04-14
8:1_9:35_2016-04-14
9:1_10:35_2016-04-14
5- выход должен быть:
7:1_8:35_2016-04-14
8:1_9:35_2016-04-14
, так как последняя линия имеет время в диапазоне тока time.It должен удалить и заменить пустая строка.
Моя проблема в том, этот код будет очистить весь файл и я не хочу, чтобы:
код invaild: fonlyOnce.write(" ")
Благодаря
У вас проблема с отступом, в начале fonlyOnce отсутствовало пространство. Редактировали. – tfv
Я думаю, вы слишком усложняете это, пытаясь сделать это на месте. Вы пытались записать строки, которые хотите сохранить во временном файле, а затем заменить исходный файл временным файлом в конце? – SpoonMeiser
Возможный дубликат [Самый быстрый способ удалить строку из большого файла в Python] (http://stackoverflow.com/questions/2329417/fastest-way-to-delete-a-line-from-large-file-in- python) – martijnn2008