2010-04-19 6 views
1

Я хотел бы написать индекс, который добавляет уникальный уникальный идентификатор (машинное время) к скрипту каждый раз, когда он выполняется. Однако каждый раз, когда я редактирую скрипт (в IDLE), индексы переписываются. Есть ли элегантный способ сделать это. Сценарий, который я написал, появляется ниже.Написание уникального идентификатора для скрипта?

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

Благодарим за любую помощь.

ответ

0

Я ожидаю, что это опасно, что нужно сделать, но это работает:

import os, time 

print "Hi, ", __file__, '!' 

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

Обратите внимание, что я получаю имя сценария как __file__, а также (но это не полный путь к файлу, так могут возникнуть проблемы при изменении cwd).

Или я пропустил что-то в ссылке на «редактирование в IDLE», что имеет значение здесь? Вероятно, вы не можете активировать скрипт в окне редактирования, пока он добавляется скриптом. Невозможно, чтобы программы знали, что имеет «контроль».

+0

Это будет делать смешные вещи, если вы запустите файл .pyc ... – badp

Смежные вопросы