Я пытаюсь разбить содержимое из файла, этот файл имеет много строк, и мы не знаем, сколько строк в качестве примера я эти данные в файле:Как разделить каждую строку из файла с помощью python?
7:1_8:35_2016-04-14
8:1_9:35_2016-04-15
9:1_10:35_2016-04-16
с помощью paython я хочу петлю на каждом линии и разделить каждую строку так:
for line in iter(file):
task =line.split("_")
first_time=task[0] #8:1
second_time=task[1] #9:35
date=task[2] #2016-04-15
Но это даст мне: задачу [0] является первой береговой линии задача [1] является второй линии и так далее .... как я могу читать только один лайн и разделить его содержимое, чтобы сделать что-то и то же самое с другими линиями.
Update мой вопрос: полный код:
with open('onlyOnce.txt', 'r') as fp:
for f_time, sec_time, dte in filter(None, reader(fp, delimiter="_")):
check_stime=f_time.split(":")
Stask_hour=check_stime[0]
Stask_minutes=check_stime[1]
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 (time(Stask_hour,Stask_minutes) <= now_time <= time(Etask_hour,Etask_minutes) and date_now == dte):
print("this line in range time: "+ f_time)
else:
print("")
fp.close()
Моя цель из этого кода: проверить текущее время каждой линии, и когда линия тока в диапазоне от «первой линии» // делаем somthing, это как сделать расписание или будильник.
Ошибка:
Traceback (most recent call last):
File "<encoding error>", line 148, in <module>
TypeError: 'module' object is not callable
Окей, окончательный Обновление:
from datetime import datetime,time
from csv import reader
with open('onlyOnce.txt', 'r') as fp:
for f_time, sec_time, dte in filter(None, reader(fp, delimiter="_")):
check_stime=f_time.split(":")
Stask_hour=check_stime[0]
Stask_minutes=check_stime[1]
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 time(int(Stask_hour),int(Stask_minutes)) <= now_time <= time(int(Etask_hour),int(Etask_minutes) and dte == date_now):
print("this line in range time: "+ f_time)
else:
print("")
fp.close()
Но я хочу задать глупый вопрос:/ Когда я проверить эту логику, не будет печатать "да" !! но дата равна 2016-04-14, так почему бы не правильно? Оо я запутался
if('2016-04-14' == datetime.now().date()):
print("yes")
Спасибо за каждый мне помогли: Padraic Cunningham и других
я попробовал ваш код, но у меня есть эта ошибка «Traceback (самый последний вызов последнего): Файл„<ошибка кодирования>“, строка 95, в ValueError: не хватает значений для распаковки (ожидается 3, получил 0) «моя строка95 есть» для f_time, sec_time, dte в reader (f, delimiter = «_»): « –
Samah
@Samah, тогда у вас будут пустые строки, я отредактирую –
, я отредактирую свой вопрос выше, пожалуйста, посмотрите it :) – Samah