2011-03-07 187 views
9

在Python v2中,是否有办法获取日期/时间戳并将其放入创建新的文本文件?Python - 将日期戳添加到文本文件

IE:当我想创建一个新的文本文件并将它的内容写入它时,它将创建一个新的文本文件,其中包含时间/日期。

感谢您的任何帮助。

+1

“当我想创建一个新的文本文件并将其中的内容写入它时,它将创建一个新的文本文件,其中包含时间/日期”:first“it”表示“文件”,second “it”的意思是“我的代码” - 请编辑你的问题,明确说明第三个“it”是指文件的“文件”还是“文件名” – 2011-03-07 02:04:30

回答

21
import datetime 

def timeStamped(fname, fmt='%Y-%m-%d-%H-%M-%S_{fname}'): 
    return datetime.datetime.now().strftime(fmt).format(fname=fname) 

with open(timeStamped('myfile.txt'),'w') as outf: 
    outf.write('data!') 
+2

使用''作为时间元素分隔符的'+1':''不是Windows文件名或目录名中的有效字符。 – 2011-03-07 02:08:10

+0

请注意,'String.format()'方法不适用于所有版本的Python v2,'with open'块也不适用,所以如果该示例不起作用,那可能是原因。 – Fish 2013-02-13 11:05:36

1
import datetime 
open("file", "w").write(datetime.datetime.now().ctime()) 
open(datetime.datetime.now().ctime(), "w").write("foo") 
+0

这就是将datetime写入文本文件,如何将它添加到文本文件的名称中? – 2011-03-07 01:38:37

6

这会在前面加上时间戳的文件名的前面:

from datetime import datetime 

# define a timestamp format you like 
FORMAT = '%Y%m%d%H%M%S' 
path = 'foo.txt' 
data = 'data to be written to the file\n' 
new_path = '%s_%s' % (datetime.now().strftime(FORMAT), path) 
open(new_path, 'w').write(data) 
1

我喜欢只是有我在文件中的日期处理:

from datetime import date 

def timeIzNow(): 
    ''' 
    returns current date as a string 
    ''' 
    now = date.today() 
    full = "-" + str(now.month) + "-" + str(now.day) + "-" + str(now.year) 

    return full 

fileN = "findGenes" 

with open(fileN + timeIzNow() + ".txt", 'w') as f: 
    #DO STUFF 

您的新文件名称看起来像

findGenes-6-5-2013.txt 
1
import datetime 

f=open("/home/rohitsai/Documents/acs.txt",'a') 
f.write ("heloo"+'\t') 
f.write(datetime.datetime.now().ctime()) 
print datetime.datetime.now() 

此代码将在同一个文件中添加helo以及当前日期。 'a'用于追加模式,\ t用于制表符空间。