On Sunday, 6 May 2018 10:48:12 UTC+5:30, Chris Angelico wrote: > On Sun, May 6, 2018 at 3:10 PM, Sharan Basappa <sharan.basa...@gmail.com> > wrote: > > On Saturday, 5 May 2018 21:47:33 UTC+5:30, Steven D'Aprano wrote: > >> On Sat, 05 May 2018 08:45:39 -0700, Sharan Basappa wrote: > >> > >> > Thanks a lot. I have actually tried print with file handle as a > >> > parameter (the last option). I see that the file is created but nothing > >> > is logged. > >> > >> That could be a file buffer issue. Nothing will actually be written to > >> the disk until either the buffer is full, or you close the file. Try > >> calling fh.flush() from time to time, or use: > >> > >> print(msg, file=fh, flush=True) > >> > >> > >> although things may be different on Windows. (For example, you may not be > >> able to open the file while it is still open in Python.) > >> > >> > >> > >> -- > >> Steve > > > > Steve, > > > > I agree that flushing could be an issue but I assume when the program > > closes, buffered data should be flushed even if I am explicitly flushing. > > This I did not see happening. Probably, I have to spend some additional > > time. > > -- > > Can you post a complete (but preferably small) example of a program > that creates a file but doesn't properly write to it? > > ChrisA
Thanks, Everyone. I was probably making some mistake. I re-checked again and added file handle to the prints. Everything works fine. Below is the code ... # Imports from matplotlib import pyplot as plt from sklearn.datasets import load_iris import numpy as np import pickle fh = open("ML_PY_2.log","w+") # load the data with load_iris from sklearn data = load_iris() features = data['data'] feature_names = data['feature_names'] target = data['target'] target_names = data['target_names'] labels = target_names[target] plength = features[:,2] # use numpy operations to get setosa features is_setosa = (labels == 'setosa') # this the important step max_setosa = plength[is_setosa].max() min_non_setosa = plength[~is_setosa].min() print("data\n",data,file=fh) print("target\n",target, file=fh) print("target_names\n",target_names,file=fh) print("labels\n",labels,file=fh) print("is_setosa\n",is_setosa,file=fh) print("plength\n",plength,file=fh) print('maximum of setosa: {0}.'.format(max_setosa)) print('minimum of others: {0}.'.format(min_non_setosa)) fh.close() -- https://mail.python.org/mailman/listinfo/python-list