On Tuesday, March 31, 2015 at 9:19:37 AM UTC-4, Dave Angel wrote: > On 03/31/2015 07:00 AM, Saran A wrote: > > > @DaveA: This is a homework assignment. .... 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)? > > > > > > On Monday, March 30, 2015 at 2:36:02 PM UTC-4, Dave Angel wrote: > > >> > >> 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 > >> > > In function validate_files() > Just after the line > print('success with %s on %d reco... > you could move the file, using shutil. Likewise after the failure print. > > >> 3) your present code doesn't calculate or write to a text file any > >> statistics. > > You successfully print to sys.stderr. So you could print to some other > file in the exact same way. > > >> > >> 4) your present code runs once through the names, and terminates. It > >> doesn't "monitor" anything. > > Make a new function, perhaps called main(), with a loop that calls > validate_files(), with a sleep after each pass. Of course, unless you > fix TODO#1, that'll keep looking for the same files. No harm in that if > that's the spec, since you moved the earlier versions of the files. > > But if you want to "monitor" the directory, let the directory name be > the argument to main, and let main do a dirlist each time through the > loop, and pass the corresponding list to validate_files. > > >> > >> 5) your present code doesn't check for zero-length files > >> > > In validate_and_process_data(), instead of checking filesize against > ftell, check it against zero. > > >> 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 > > > > > > > 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. > > > > > -- > DaveA
@DaveA My most recent commit (https://github.com/ahlusar1989/WGProjects/blob/master/P1version2.0withassumptions_mods.py) has more annotations and comments for each file. I have attempted to address the functional requirements that you brought up: 1) Before, my present code was assuming all filenames come directly from the commandline. No searching of a directory. I think that I have addressed this. 2) My present code does not move any files to success or failure directories (requirements for this assignment1). I am still wondering if and how I should use shututil() like you advised me to. I keep receiving a syntax error when declaring this below the print statement. 3) You correctly reminded me that my present code doesn't calculate or write to a text file any statistics or errors for the cause of the error. (Should I use the copy or copy2 method in order provide metadata? If so, should I wrap it into a try and except logic?) 4) Before, my present code runs once through the names, and terminates. It doesn't "monitor" anything. I think I have addressed this with the main function - correct? 5) Before, my present code doesn't check for zero-length files - I have added a comment there in case that is needed) I realize appreciate your invaluable feedback. I have grown a lot with this assignment! Sincerely, Saran -- https://mail.python.org/mailman/listinfo/python-list