首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据变压器

数据变压器
EN

Stack Overflow用户
提问于 2015-11-11 14:49:47
回答 1查看 182关注 0票数 2

我真的需要一些关于这段代码的帮助。我必须使用输入文件Unit 5 Dates.txt编写代码,其中包含表单yyyy/mm/dd中的日期,将所有行读入列表,查找最早和最新的日期并打印,然后将日期字符串转换为表单July 12, 2014并打印所有日期。

我已经编写了代码,它运行得很好,但我不知道如何将日期转换为November 10, 2015表单。

代码语言:javascript
复制
def main():
    dateList = get_list()
    dateMin = find_min(dateList)
    print(dateMin)
    dateMax = find_max(dateList)
    print(dateMax)
    print ()
    print_dates(dateList)
    #changeDate = date_changer(dateList) 

def get_list():
    infile = open("Unit 5 Dates.txt", 'r')
    dateList = infile.readlines()
    infile.close()
    return dateList

def find_min(dateList):
    dateMin = dateList[0]
    for index in range(len(dateList)):
        dateList[index] = dateList[index].rstrip("\n")
        if dateList[index] < dateMin:
            dateMin = dateList[index]

    return "The earlest date in the file is: " + dateMin

def find_max(dateList):
    dateMax = dateList[0]
    for index in range(len(dateList)):
        if dateList[index] > dateMax:
            dateMax = dateList[index]

    return"The latest date in the file is: " + dateMax


def print_dates(dateList):
    print("This is the list of dates")
    for index in range(len(dateList)):
        print(dateList[index])

main()

你告诉我的,我已经做过了,但没有用。如果我想从一个txt文件名Unit 5 Dates.txt读取它,它已经包含了所有的日期。例如,如果您查看我的代码,我将创建一个名为get_list的值返回函数,然后打开define,打开Unit 5 dates.txt,文件并读取txt文件中的所有日期。

这是我目前所拥有的。我已经创建了一个名为date_chnage的创建函数,并定义了该函数。但是当我运行代码时,它会给我一条错误信息。

代码语言:javascript
复制
def date_changer(dateList):

import datetime as datechanger

infile = open("Unit 5 Dates.txt", 'r')   

print("This is the list of dates")
for index in range(len(dateList)):
    dateList = datechanger.datetime.strptime(datechanger, '%Y/%m/%d').date()
    print (date.strftime("%B %d, %Y")) 

main()

这是它给我的错误

File "/Users/mohamedkeita/Library/Mobile Documents/com~apple~CloudDocs/School/2015:2016 School/Python/Unit 5/KeitaM_Unit 5 copy.py", line 18, in main changeDate = date_changer(dateList) File "/Users/mohamedkeita/Library/Mobile Documents/com~apple~CloudDocs/School/2015:2016 School/Python/Unit 5/KeitaM_Unit 5 copy.py", line 70, in date_changer dateList = datechanger.datetime.strptime(datechanger, '%Y/%m/%d').date() TypeError: must be str, not module

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-11 15:13:18

使用日期时间

代码语言:javascript
复制
import datetime as dt

dates='''\
2015/11/11
1941/12/07
1776/07/04'''

for ds in dates.splitlines():
    date=dt.datetime.strptime(ds, '%Y/%m/%d').date()
    print(date.strftime("%B %d, %Y"))

指纹:

代码语言:javascript
复制
November 11, 2015
December 07, 1941
July 04, 1776

您还可以为max和min使用日期:

代码语言:javascript
复制
>>> max(dates.splitlines(), key=lambda l: dt.datetime.strptime(l, '%Y/%m/%d').date())
'2015/11/11'
>>> min(dates.splitlines(), key=lambda l: dt.datetime.strptime(l, '%Y/%m/%d').date())
'1776/07/04'

当我在示例中使用dates.splitlines()时,这可能是另一个源--例如文件。

在将YYYY/MM/DD作为字符串中的数字的情况下,还可以使用词典编纂排序来确定min/max:

代码语言:javascript
复制
>>> max(dates.splitlines())
'2015/11/11'
>>> min(dates.splitlines())
'1776/07/04'

如果需要转换或验证日期,请使用日期时间。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33653086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档