gpt4 book ai didi

python - 数据转换器

转载 作者:太空宇宙 更新时间:2023-11-04 00:59:05 25 4
gpt4 key购买 nike

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

我已经编写了代码并且运行良好,但我不知道如何将日期转换为 November 10, 2015 的形式。

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 的值返回函数,然后我定义 它并打开 Unit 5 dates.txt,归档并读取 txt 文件中的所有日期。

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

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()

这是它给我的错误

文件“/Users/mohamedkeita/Library/Mobile Documents/com~apple~CloudDocs/School/2015:2016 School/Python/Unit 5/KeitaM_Unit 5 copy.py”,第 18 行,在 main
更改日期 = date_changer(dateList)
文件“/Users/mohamedkeita/Library/Mobile Documents/com~apple~CloudDocs/School/2015:2016 School/Python/Unit 5/KeitaM_Unit 5 copy.py”,第 70 行,date_changer
dateList = datechanger.datetime.strptime(datechanger, '%Y/%m/%d').date() 日期列表
类型错误:必须是 str,不是模块

最佳答案

使用datetime :

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"))

打印:

November 11, 2015
December 07, 1941
July 04, 1776

您也可以为最大值和最小值使用日期时间日期:

>>> 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 作为数字,您也可以只使用 lexicographical sorting确定最小值/最大值:

>>> max(dates.splitlines())
'2015/11/11'
>>> min(dates.splitlines())
'1776/07/04'

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

关于python - 数据转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33653086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com