Finding and copying files with python.
Steve Holden
steve at holdenweb.com
Tue Apr 3 10:07:44 EDT 2007
gtb wrote:
> On Apr 3, 8:31 am, kyoso... at gmail.com wrote:
>> On Apr 3, 8:21 am, "gtb" <goodTweetieB... at hotmail.com> wrote:
>>
>>
>>
>>
>>
>>
>>
>>> I wish to copy the highest version number of a file from directory \
>>> \
>>> \fileserver\D:\scripts to C:\scripts where the file names are of the
>>> form
>>> filename_MM.NN.SS.zip, where MM, NN, and SS can be one to three
>>> digits.
>>> Example directory:
>>> other.zip
>>> dx_ver_1.1.63.zip
>>> dx_ver_1.2.01.zip
>>> dx_ver_1.12.7.zip
>>> temp.txt
>>> Does python have string matching routines that would find the bottom
>>> listed zip file and/or file copying routines?
>>> A little pointer or two would be much appreciated.
>>> Thanks,
>>> jh
>> You could just use string slicing to cut off the first 7 characters
>> and have the numbers available to compare. There's also the os.stat
>> module to find the last modified date of the file. You might be able
>> to use the glob module to grab a list of the files and then sort the
>> list too.
>>
>> Mike
>
> Thanks for posting folks. I didn't make my question clear. Before I
> sort the files I need to ensure that I am only sorting the files that
> match the profile of "filename_MM.NN.SS.zip", where MM, NN, and SS can
> be one to three
> digits.
>
> Thanks again,
>
> jh
>
OK, well look at the glob module to get a list of the filenames.
You are going to have to be careful doing the sort, however, because a
simple string comparison won't work for numbers of differing lengths.
One way would be to define a function that extracts the numeric
components from a filename and produces a three-element tuple or list.
Then pass this function to sort() as the "key" argument.
regards
Steve
--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://del.icio.us/steve.holden
Recent Ramblings http://holdenweb.blogspot.com
More information about the Python-list
mailing list