2011-03-07 20 views
9

En Python v2, ¿hay alguna manera de obtener un sello de fecha/hora y ponerlo en la creación de un nuevo archivo de texto?Python - Agregar sello de fecha al archivo de texto

IE: Cuando deseo crear un nuevo archivo de texto y escribirle los contenidos de mi programa, creará un nuevo archivo de texto con la fecha/hora en él.

Gracias por cualquier ayuda.

+1

"Cuando quiero crear un nuevo archivo de texto y escribirle los contenidos de mi programa, creará un nuevo archivo de texto con la fecha/hora en él": primero "eso" significa "el archivo", segundo "esto" significa "mi código" - POR FAVOR, edite su pregunta para decir explícitamente si el "tercero" significa "el archivo" o "el NOMBRE del archivo". –

Respuesta

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 para usar ''-'' como separador de elementos de tiempo ...'': ''no es un carácter válido en un nombre de archivo o directorio de Windows. –

+0

Tenga en cuenta que el método 'String.format()' no está disponible para todas las versiones de Python v2, y tampoco lo es el bloque 'with open', por lo que si el ejemplo no funciona, esa podría ser la razón. – Fish

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

¿Está escribiendo la fecha y hora en el archivo de texto, hay una forma de agregarlo al nombre del archivo de texto? –

6

Esto anteponer una marca de tiempo al frente del nombre de archivo:

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

me gusta sólo tener la fecha en mi archivo de llaves:

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 

El nuevo archivo el nombre se verá como

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

Este código agregará helo y la fecha actual en el mismo archivo. 'a' es para el modo de adición, \ t para el espacio de tabulación.

Cuestiones relacionadas