import os
from time import strftime
# Function calls are expensive, let's just remember this format string
time_format = '%A, %B %d, %Y [%H:%M:%S]'
def addLine(text):
# This general function will handle all our file writing
with open(filepath, 'w+') as f:
f.write(text +
'\nThis line was added by %s on %s\n' %
(name, strftime(time_format)) # We want the current time
# Prompt for name
name = raw_input('What is your first name?\n> ')
filepath = name + '.txt'
# If the don't say "yes" they said "no"
if not os.path.isfile(filepath) or raw_input('File already exists, overwrite? (Y/N)')[0].upper() == 'Y':
# First just add the user's name
addLine(name + ' was here')
# Now we loop to add lines until asked to stop
while True:
# Output current file
print 'The file now reads:'
with open(filepath) as f:
# We can just loop through the file rather than using file.readlines
for line in f:
print '\t' + line.rstrip()
if raw_input('\nWould you like to add more lines? (Y/N)')[0].upper() != 'Y':
break # End of looping
# Prompt for and add new text
addLine(raw_input('What would you like to add?\n'))
else:
print 'File not created.'
aW1wb3J0IG9zCmZyb20gdGltZSBpbXBvcnQgc3RyZnRpbWUKCiMgRnVuY3Rpb24gY2FsbHMgYXJlIGV4cGVuc2l2ZSwgbGV0J3MganVzdCByZW1lbWJlciB0aGlzIGZvcm1hdCBzdHJpbmcKdGltZV9mb3JtYXQgPSAnJUEsICVCICVkLCAlWSBbJUg6JU06JVNdJwoKZGVmIGFkZExpbmUodGV4dCk6CiAgICAjIFRoaXMgZ2VuZXJhbCBmdW5jdGlvbiB3aWxsIGhhbmRsZSBhbGwgb3VyIGZpbGUgd3JpdGluZwogICAgd2l0aCBvcGVuKGZpbGVwYXRoLCAndysnKSBhcyBmOgogICAgICAgIGYud3JpdGUodGV4dCArCiAgICAgICAgICdcblRoaXMgbGluZSB3YXMgYWRkZWQgYnkgJXMgb24gJXNcbicgJQogICAgICAgICAgKG5hbWUsIHN0cmZ0aW1lKHRpbWVfZm9ybWF0KSkgIyBXZSB3YW50IHRoZSBjdXJyZW50IHRpbWUKCgojIFByb21wdCBmb3IgbmFtZQpuYW1lID0gcmF3X2lucHV0KCdXaGF0IGlzIHlvdXIgZmlyc3QgbmFtZT9cbj4gJykKZmlsZXBhdGggPSBuYW1lICsgJy50eHQnCgojIElmIHRoZSBkb24ndCBzYXkgInllcyIgdGhleSBzYWlkICJubyIKaWYgbm90IG9zLnBhdGguaXNmaWxlKGZpbGVwYXRoKSBvciByYXdfaW5wdXQoJ0ZpbGUgYWxyZWFkeSBleGlzdHMsIG92ZXJ3cml0ZT8gKFkvTiknKVswXS51cHBlcigpID09ICdZJzoKICAgICMgRmlyc3QganVzdCBhZGQgdGhlIHVzZXIncyBuYW1lCiAgICBhZGRMaW5lKG5hbWUgKyAnIHdhcyBoZXJlJykKCiAgICAjIE5vdyB3ZSBsb29wIHRvIGFkZCBsaW5lcyB1bnRpbCBhc2tlZCB0byBzdG9wCiAgICB3aGlsZSBUcnVlOgogICAgICAgICMgT3V0cHV0IGN1cnJlbnQgZmlsZQogICAgICAgIHByaW50ICdUaGUgZmlsZSBub3cgcmVhZHM6JwogICAgICAgIHdpdGggb3BlbihmaWxlcGF0aCkgYXMgZjoKICAgICAgICAgICAgIyBXZSBjYW4ganVzdCBsb29wIHRocm91Z2ggdGhlIGZpbGUgcmF0aGVyIHRoYW4gdXNpbmcgZmlsZS5yZWFkbGluZXMKICAgICAgICAgICAgZm9yIGxpbmUgaW4gZjoKICAgICAgICAgICAgICAgIHByaW50ICdcdCcgKyBsaW5lLnJzdHJpcCgpCgogICAgICAgIGlmIHJhd19pbnB1dCgnXG5Xb3VsZCB5b3UgbGlrZSB0byBhZGQgbW9yZSBsaW5lcz8gKFkvTiknKVswXS51cHBlcigpICE9ICdZJzoKICAgICAgICAgICAgYnJlYWsgIyBFbmQgb2YgbG9vcGluZwogICAgICAgICMgUHJvbXB0IGZvciBhbmQgYWRkIG5ldyB0ZXh0CiAgICAgICAgYWRkTGluZShyYXdfaW5wdXQoJ1doYXQgd291bGQgeW91IGxpa2UgdG8gYWRkP1xuJykpCgplbHNlOgogICAgcHJpbnQgJ0ZpbGUgbm90IGNyZWF0ZWQuJw==