Often, I want to write a one-liner to a file to register information. I do my time tracking this way, for example. First, you need Python to get data from the command line. Say you want to track number of hours spent on a project at work and get this into a tab-delimited file that you can open in a spreadsheet later (Excel, Calc, etc). You want a utility where you simply write the following at the command prompt:
regtime projectname hours
and it should automatically make the following line in your "spreadsheet":
date projectname hours
In order to do this, we need to get the current date in Python. Luckily, there is a nice module called time that allows us to do that in a simple fashion. First, import it as follows:
from time import strftime as getdate
What this does is that it gets the current local time used on the computer and writes a text string with the date:
We also need to get the command line arguments projectname and hours into Python.
For this we need the list sys.argv.
from sys import argv as arguments
Ok, lets summarize with a script that takes the two command line arguments and writes the "spreadsheet" line to the screen:
from sys import argv as cla
from time import strftime as getDate
myString = getDate('%Y-%m-%d')+'\t'+cla+'\t'+cla+'\n'
The result of running this script with arguments "Command line tool" and 1 is shown below:
2009-05-22 Command line tool 1
Next post will show how to write this at the end of a text file.
Some comments on the above code:
a) the character \t means "insert tab in text string"
b) the character \n means "insert line break"
c) the string '%Y-%m-%d' formats the date to ISO standard
d) adding string elements works in the obvious way: 'foo'+'bar'='foobar'