2016-08-25 56 views
0

我有一个每天都会生成的文本文件,它的命名格式如下:“year-month-date.txt”(例如2016-08-25.txt )。如何在Python中使用当天日期自动调用文本文件

现在我想用python打开文本文件并从中读取一些数据。但我想这样做,而不是每次手动更改代码中的文本文件的名称(记住文本文件的名称每天更改)。

到目前为止,我有(6号线是是需要固定的部分):

#1 Get today's date 
import datetime 
todays_date=datetime.date.today() 
print(todays_date) 
#2 Import info from a text file that is named as today's date 
filename=todays_date.txt 
fin=open(filename,'r') 
Line1list=fin.readline() 
print(Line1list) 

回答

5

你将不得不从todays_date以正确的格式,以提取字符串。

使用strftime为(见docs):

filename = todays_date.strftime('%Y-%m-%d') + '.txt' 

完整的示例:

import datetime 

todays_date = datetime.date.today() 
filename = todays_date.strftime('%Y-%m-%d') + '.txt' 
print(filename) 
>> 2016-08-25.txt 
3

文件名应该是一个字符串,你现在正试图访问attribut .TXT今天的日期...

替换为:

todays_date=datetime.date.today() 

filename = str(todays_date)+'.txt' 

另外请确保todays_date与txt文件的名称完全匹配,您可能需要洗牌日期,月份和年份。以上仅适用于文件确实类似'2016-08-25.txt'

+0

这不会按预期工作。 'str(datetime.now())'以“错误”的格式返回一个字符串。 – DeepSpace

+0

对不起,但是当我测试它时,它会返回海报请求的确切格式。也是原来的代码指的是:datetime.date.today()不是datetime.now() – BartDur

+0

你是对的,我错过了OP使用'datetime.date.today()'而不是'datetime.now() '。 – DeepSpace

相关问题