2010-04-19 7 views
1

Je voudrais écrire un indice qui ajoute un identifiant unique (temps machine) à un script à chaque fois qu'il s'exécute. Cependant, chaque fois que j'édite le script (dans IDLE), les indétecteurs sont écrasés. Y a-t-il une manière élégante de faire ceci. Le script que j'ai écrit apparaît ci-dessous.Écriture d'un identifiant unique pour le script?

import os, time 

f = open('sys_time_append.py','r') 
lines = f.readlines() 
f.close() 
fout = open('sys_time_append.py','w') 


for thisline in lines: 
    fout.write(thisline) 
fout.write('\n#'+str(time.time())+' s r\n') 
fout.close() 

Merci pour toute aide.

Répondre

0

Je pense que c'est une chose dangereuse à faire, mais il fonctionne:

import os, time 

print "Hi, ", __file__, '!' 

with open(__file__, 'a') as fout: 
    fout.write('\n#'+str(time.time())+' s r\n') 

Notez que je reçois le nom du script comme __file__, aussi bien (mais ce n'est pas le chemin complet, donc il peut y avoir des problèmes si le cwd est changé). Ou est-ce qu'il me manque quelque chose dans la référence à "éditer dans IDLE" qui compte ici? Vous ne pouvez probablement pas activer le script dans une fenêtre d'édition pendant qu'il est ajouté par le script. Il est impossible pour les programmes de savoir qui a le «contrôle».

+0

Cela va certainement faire des choses amusantes si vous exécutez un fichier .pyc ... – badp

Questions connexes