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 -- http://mail.python.org/mailman/listinfo/python-list