Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试从txt.file(PYTHON)获取总和时,输入中出现时间数据错误_Python_Csv_Datetime_Error Handling_Text Files - Fatal编程技术网

尝试从txt.file(PYTHON)获取总和时,输入中出现时间数据错误

尝试从txt.file(PYTHON)获取总和时,输入中出现时间数据错误,python,csv,datetime,error-handling,text-files,Python,Csv,Datetime,Error Handling,Text Files,我正在尝试制作的程序应该让用户输入开始日期和结束日期,该程序将遍历包含以下信息的txt文件中的列表: 1-2-2014,store1,42305.67,23 12-4-2014,store2,21922.22,17 10-2-2015,store3,63277.9,32 10-5-2015,store4,83290.09,16 信息用逗号分隔。第三个数字是代表金钱的数值。例如,如果用户输入(参考上面的txt文件信息示例) 该程序旨在计算从开始日期算起的代表货币的数字,包括介于两个日期之间的数字

我正在尝试制作的程序应该让用户输入开始日期和结束日期,该程序将遍历包含以下信息的txt文件中的列表:

1-2-2014,store1,42305.67,23
12-4-2014,store2,21922.22,17
10-2-2015,store3,63277.9,32
10-5-2015,store4,83290.09,16
信息用逗号分隔。第三个数字是代表金钱的数值。例如,如果用户输入(参考上面的txt文件信息示例)

该程序旨在计算从开始日期算起的代表货币的数字,包括介于两个日期之间的数字(如果有)(上面的示例日期,我输入的日期显示中间有一个日期)并打印总金额

程序应该使用txt文件中的任何开始和结束日期输入,如果没有记录,则打印不存在此类记录

下面是两个不同的程序,在其他人的帮助下,我想出了这两个程序,但产生了错误,我希望有人能纠正并指出我的错误

代码1,末尾有错误说明:

from datetime import datetime

def calculate(file_name, s_date, e_date):
dollar = 0
_format = '%d-%m-%Y'
start_date = datetime.strptime(s_date, _format)
end_date = datetime.strptime(e_date, _format)
with open(file_name) as f:
    lines = f.readlines()
    for line in lines:
        l = line.split(',')
        date = datetime.strptime(l[0], _format)
        if date >= start_date and date <= end_date:
            dollar = dollar + float(l[2])
return dollar

start_date = raw_input('Enter start date')
end_date = raw_input('Enter end date')
result = calculate('file.dat', start_date, end_date)
print (result) 


ValueError: time data '\n' does not match format '%d-%m-%Y'
from datetime import datetime

begin_date = datetime.strptime(input('Enter start date (dd mm yyyy): '), '%d %m %Y')
end_date = datetime.strptime(input('Enter end date (dd mm yyyy): '), '%d %m %Y')

with open ('data.txt', 'r') as f:
total = 0
for line in f:
    strlist = line.rstrip().split(',')

    dt = datetime.strptime(strlist[0], '%d %m %Y')

    if begin_date <= dt <= end_date:
        total+=float(strlist[2].split('$')[1])




print(total)




ValueError: time data '' does not match format '%d %m %Y'
从日期时间导入日期时间
def计算(文件名、s_日期、e_日期):
美元=0
_格式=“%d-%m-%Y”
开始日期=datetime.strTime(s\U日期,\U格式)
end_date=datetime.strtime(e_date,_格式)
打开(文件名)为f时:
行=f.读行()
对于行中的行:
l=行。拆分(',')
date=datetime.strtime(l[0],_格式)

如果日期>=开始日期和日期格式中的日期问题:

%m  Month as a zero-padded decimal number.
%d  Day of the month as a zero-padded decimal number.
您正在使用此格式,但它们必须包含2位数字

比如01、03、10等等

%m  Month as a zero-padded decimal number.
%d  Day of the month as a zero-padded decimal number.