print function in python3.1
Diez B. Roggisch
deets at nospam.web.de
Mon Nov 23 11:07:33 EST 2009
Anjanesh Lekshminarayanan wrote:
>> Maybe it would help if you explained what you are actually trying to
>> accomplish.
>
> import csv
> f = csv.reader(open('data.txt'), delimiter='\t') # 2GB text file
> sql = "INSERT INTO `data` VALUES (NULL,%s,%s,%s,%s,%s);"
> for row in f:
> print (sql, (row[0],row[1],row[2],row[3],row[4]))
>
> $ python3 parse.py3 > data.sql
>
> But because of print() being a function in Py3,
> print (sql, (row[0],row[1],row[2],row[3],row[4]))
> prints
> INSERT INTO `data` VALUES (NULL, '%s', '%s', '%s', '%s', '%s');
> ('142', 'abcde', '2006-03-01 05:17:14', '', '')
> instead of
> INSERT INTO `data` VALUES (NULL, '142', 'abcde', '2006-03-01 05:17:14',
> '', '');
No. It does so because you don't use
print(sql % (row[0],row[1],row[2],row[3],row[4]))
And that has nothing to do with print being a function or not.
Diez
More information about the Python-list
mailing list