On Monday, March 30, 2015 at 2:36:02 PM UTC-4, Dave Angel wrote: > On 03/30/2015 12:45 PM, Saran A wrote: > > On Sunday, March 29, 2015 at 10:04:45 PM UTC-4, Chris Angelico wrote: > >> On Mon, Mar 30, 2015 at 12:08 PM, Paul Rubin <no.email@nospam.invalid> > >> wrote: > >>> Saran Ahluwalia <ahlusar.ahluwa...@gmail.com> writes: > >>>> cross-platform... > >>>> * Monitors a folder for files that are dropped throughout the day > >>> > >>> I don't see a cross-platform way to do that other than by waking up and > >>> scanning the folder every so often (once a minute, say). The Linux way > >>> is with inotify and there's a Python module for it (search terms: python > >>> inotify). There might be comparable but non-identical interfaces for > >>> other platforms. > >> > >> All too often, "cross-platform" means probing for one option, then > >> another, then another, and using whichever one you can. On Windows, > >> there's FindFirstChangeNotification and ReadDirectoryChanges, which > >> Tim Golden wrote about, and which I coded up into a teleporter for > >> getting files out of a VM automatically: > >> > >> http://timgolden.me.uk/python/win32_how_do_i/watch_directory_for_changes.html > >> https://github.com/Rosuav/shed/blob/master/senddir.py > >> > >> ChrisA > > > > @Dave, Chris, Paul and Dennis: Thank you for resources and the notes > > regarding what I should keep in mind. I have an initial commit: > > https://github.com/ahlusar1989/IntroToPython/blob/master/Project1WG_with_assumptions_and_comments.py > > > > I welcome your thoughts on this > > > > It's missing a number of your requirements. But it's a start. > > If it were my file, I'd have a TODO comment at the bottom stating known > changes that are needed. In it, I'd mention: > > 1) your present code is assuming all filenames come directly from the > commandline. No searching of a directory. > > 2) your present code does not move any files to success or failure > directories > > 3) your present code doesn't calculate or write to a text file any > statistics. > > 4) your present code runs once through the names, and terminates. It > doesn't "monitor" anything. > > 5) your present code doesn't check for zero-length files > > I'd also wonder why you bother checking whether the > os.path.getsize(file) function returns the same value as the os.SEEK_END > and ftell() code does. Is it that you don't trust the library? Or that > you have to run on Windows, where the line-ending logic can change the > apparent file size? > > I notice you're not specifying a file mode on the open. So in Python 3, > your sizes are going to be specified in unicode characters after > decoding. Is that what the spec says? It's probably safer to > explicitly specify the mode (and the file encoding if you're in text). > > I see you call strip() before comparing the length. Could there ever be > leading or trailing whitespace that's significant? Is that the actual > specification of line size? > > -- > DaveA
@ Dave A On Monday, March 30, 2015 at 2:36:02 PM UTC-4, Dave Angel wrote: > On 03/30/2015 12:45 PM, Saran A wrote: > > On Sunday, March 29, 2015 at 10:04:45 PM UTC-4, Chris Angelico wrote: > >> On Mon, Mar 30, 2015 at 12:08 PM, Paul Rubin <no.email@nospam.invalid> > >> wrote: > >>> Saran Ahluwalia <ahlusar.ahluwa...@gmail.com> writes: > >>>> cross-platform... > >>>> * Monitors a folder for files that are dropped throughout the day > >>> > >>> I don't see a cross-platform way to do that other than by waking up and > >>> scanning the folder every so often (once a minute, say). The Linux way > >>> is with inotify and there's a Python module for it (search terms: python > >>> inotify). There might be comparable but non-identical interfaces for > >>> other platforms. > >> > >> All too often, "cross-platform" means probing for one option, then > >> another, then another, and using whichever one you can. On Windows, > >> there's FindFirstChangeNotification and ReadDirectoryChanges, which > >> Tim Golden wrote about, and which I coded up into a teleporter for > >> getting files out of a VM automatically: > >> > >> http://timgolden.me.uk/python/win32_how_do_i/watch_directory_for_changes.html > >> https://github.com/Rosuav/shed/blob/master/senddir.py > >> > >> ChrisA > > > > @Dave, Chris, Paul and Dennis: Thank you for resources and the notes > > regarding what I should keep in mind. I have an initial commit: > > https://github.com/ahlusar1989/IntroToPython/blob/master/Project1WG_with_assumptions_and_comments.py > > > > I welcome your thoughts on this > > > > It's missing a number of your requirements. But it's a start. > > If it were my file, I'd have a TODO comment at the bottom stating known > changes that are needed. In it, I'd mention: > > 1) your present code is assuming all filenames come directly from the > commandline. No searching of a directory. > > 2) your present code does not move any files to success or failure > directories > > 3) your present code doesn't calculate or write to a text file any > statistics. > > 4) your present code runs once through the names, and terminates. It > doesn't "monitor" anything. > > 5) your present code doesn't check for zero-length files > > I'd also wonder why you bother checking whether the > os.path.getsize(file) function returns the same value as the os.SEEK_END > and ftell() code does. Is it that you don't trust the library? Or that > you have to run on Windows, where the line-ending logic can change the > apparent file size? > > I notice you're not specifying a file mode on the open. So in Python 3, > your sizes are going to be specified in unicode characters after > decoding. Is that what the spec says? It's probably safer to > explicitly specify the mode (and the file encoding if you're in text). > > I see you call strip() before comparing the length. Could there ever be > leading or trailing whitespace that's significant? Is that the actual > specification of line size? > > -- > DaveA @DaveA: This is a homework assignment. As someone is not familiar (I have only been programming for 8 months) with best practice for writing to files, appending to folders and searching a directory. Is it possible that you could provide me with some snippets or guidance on where to place your suggestions (for your TO DOs 2,3,4,5)? I ask this because I have been searching fruitlessly through for some time and there are so many permutations that I am bamboozled by which is considered best practice. Moreover, as to the other comments, those are too specific. The scope of the assignment is very limited, but I am learning what I need to look out or ask questions regarding specs - in the future. -- https://mail.python.org/mailman/listinfo/python-list