- lists files in a directory in reverse alphabetical order following file names
- using a file pattern, it gets the "newest" file name as the file names have the embedded date
#!/usr/bin/python import os import shutil ############################################################ def main(): source_dir = "./sampleDir" isGood = list_files_from_directory(source_dir) if isGood: print "*** listing successful" else: print "*** listing FAILED" isGood = get_the_newest_file(source_dir, "customer_1000") if isGood: print "*** get newest file successful" else: print "*** get newest file FAILED" ############################################################ def list_files_from_directory(source_directory): isSuccess = True try: src_files = os.listdir(source_directory) src_files.sort(reverse=True) for file_name in src_files: full_file_name = os.path.join(source_directory, file_name) if os.path.isfile(full_file_name): print "full_file_name: " + full_file_name isSuccess = True except: print ":::ERROR: Failed to list from: " + source_directory isSuccess = False return isSuccess ############################################################ def get_the_newest_file(source_directory, file_pattern): isSuccess = True try: src_files = os.listdir(source_directory) src_files.sort(reverse=True) for file_name in src_files: full_file_name = os.path.join(source_directory, file_name) if os.path.isfile(full_file_name) and file_name.find(file_pattern) > -1: print "full_file_name: " + full_file_name break isSuccess = True except: print ":::ERROR: Failed to list the newest file from: " + source_directory isSuccess = False return isSuccess ############################################################ if __name__ == "__main__": main()
Here are the files from the sampleDir directory:
-rw-r--r--@ 1 almir staff 0 Dec 19 10:05 1000_2015_12_18_00_10_1124.json
-rw-r--r--@ 1 almir staff 0 Dec 19 10:06 1000_2015_12_18_00_12_1000.json
-rw-r--r--@ 1 almir staff 0 Dec 19 10:06 1000_2015_12_18_00_15_1001.json
-rw-r--r--@ 1 almir staff 0 Dec 19 00:10 2015_12_18_00_10_1124.json
-rw-r--r--@ 1 almir staff 0 Dec 19 00:09 2015_12_19_00_09_1000.json
-rw-r--r--@ 1 almir staff 0 Dec 19 00:09 2015_12_19_00_09_1001.json
-rw-r--r--@ 1 almir staff 0 Dec 19 00:10 2015_12_19_00_10_1124.json
-rw-r--r--@ 1 almir staff 0 Dec 19 10:10 customer_1000_2015_12_18_00_10_1124.json
-rw-r--r--@ 1 almir staff 0 Dec 19 10:10 customer_1000_2015_12_18_00_12_1124.json
-rw-r--r--@ 1 almir staff 0 Dec 19 10:10 customer_1000_2015_12_18_00_14_1124.json
-rw-r--r--@ 1 almir staff 0 Dec 19 10:10 customer_1000_2015_12_18_00_14_1125.json
-rw-r--r--@ 1 almir staff 0 Dec 19 10:11 customer_1000_2015_12_18_00_14_2000.json
-rw-r--r--@ 1 almir staff 0 Dec 19 10:12 customer_1000_2015_12_18_00_14_2001.json
-rw-r--r--@ 1 almir staff 0 Dec 19 10:11 customer_1001_2015_12_18_00_14_2000.json
-rw-r--r--@ 1 almir staff 0 Dec 19 10:11 customer_1002_2015_12_18_00_14_2000.json
-rw-r--r--@ 1 almir staff 0 Dec 19 10:11 customer_1003_2015_12_18_00_14_2000.json
Here is the result after running the above Python program:
full_file_name: ./sampleDir/customer_1003_2015_12_18_00_14_2000.json
full_file_name: ./sampleDir/customer_1002_2015_12_18_00_14_2000.json
full_file_name: ./sampleDir/customer_1001_2015_12_18_00_14_2000.json
full_file_name: ./sampleDir/customer_1000_2015_12_18_00_14_2001.json
full_file_name: ./sampleDir/customer_1000_2015_12_18_00_14_2000.json
full_file_name: ./sampleDir/customer_1000_2015_12_18_00_14_1125.json
full_file_name: ./sampleDir/customer_1000_2015_12_18_00_14_1124.json
full_file_name: ./sampleDir/customer_1000_2015_12_18_00_12_1124.json
full_file_name: ./sampleDir/customer_1000_2015_12_18_00_10_1124.json
full_file_name: ./sampleDir/2015_12_19_00_10_1124.json
full_file_name: ./sampleDir/2015_12_19_00_09_1001.json
full_file_name: ./sampleDir/2015_12_19_00_09_1000.json
full_file_name: ./sampleDir/2015_12_18_00_10_1124.json
full_file_name: ./sampleDir/1000_2015_12_18_00_15_1001.json
full_file_name: ./sampleDir/1000_2015_12_18_00_12_1000.json
full_file_name: ./sampleDir/1000_2015_12_18_00_10_1124.json
*** listing successful
full_file_name: ./sampleDir/customer_1000_2015_12_18_00_14_2001.json
*** get newest file successful
- almirsCorner.com -
#python #programming #code #coding #software #softwaredeveloper #softwareengineering #programmer
No comments:
Post a Comment