python - How i can find DIR which is present in last in list -
import ftplib import re import string ftp = ftplib.ftp('') # access ftp link. ftp.login ("") ftpdir = ftp.cwd('') data=[] ftp.dir(data.append) line in data: string.find("dir","data") if "dir" in line: print line with code got list of dir names present in ftp server, how can find dir present in last in list.
my output is:
12-09-11 10:04pm <dir> mcl_201147_hw79u_05 12-08-11 01:19am <dir> mcl_201148_hw79u_02 12-16-11 12:53pm <dir> mcl_201149_hw79u_07 12-25-11 12:11am <dir> mcl_201150_hw79u_05 01-07-12 12:00am <dir> mcl_201151_hw79u_04 01-07-12 11:37pm <dir> mcl_201152_hw79u_05 01-17-12 01:06am <dir> mcl_201201_hw79u_04 01-29-12 12:52am <dir> mcl_201202_hw79u_04 02-04-12 01:06am <dir> mcl_201203_hw79u_03 02-11-12 01:28am <dir> mcl_201204_hw79u_05 02-17-12 01:12am <dir> mcl_201205_hw79u_05 02-19-12 01:22am <dir> mcl_201206_hw79u_05 03-02-12 02:24am <dir> mcl_201207_hw79u_05 03-04-12 02:01am <dir> mcl_201208_hw79u_05 03-05-12 12:25pm <dir> mcl_201209_hw79u_06 i want find last dir present in list (03-05-12 12:25pm mcl_201209_hw79u_06)
if list, this
try: return data[-1] except indexerror e: return e // in code can print "e" , can continue this... // version 2 demonstrate why try, except useful def getdir(data): try: data[-1] except indexerror e: return e .... print getdir(data) print 1+1 suppose wrong indexing list, program not halt:
list index out of range 2 is want?
to useful, should use logger keep track of e (error message), , instead, returns default value (like none) know there wrong / no directory exists.
and not sure what's use of string module here. use module if it's finding need in list.
please give me these descriptions , edit original post.
- give me results of
print line - give me result of
print data - what
dirwant?
while answering questions, can figure out how solve it.
thanks.
okay. assume each line record of form:
12-09-11 10:04pm <dir> mcl_201147_hw79u_05 assuming don't have way keep time, <dir>, , dir-name separate, this
mystring = "12-09-11 10:04pm <dir> mcl_201147_hw79u_05" dirname = mystring.split(" ")[-1] // ['12-09-11', '', '10:04pm', '', '', '', '', '', '', '<dir>', '', '', '', '', '', '', '', '', '', 'mcl_201147_hw79u_05'] // , [-1] indicates last element in list (in reverse order) you can try ' '.join(mystring.split()) first, apply split() (without argument), think doing split right away easier , more memory efficient first method create 1 list, , alternative method create 2 lists.
if lines not str type, try see if str(line) helps.
if ever need find dirname, please google list comprehension. it's considered more efficient loops. it's compact way of writing going achieve... with, of course, proper stripping per requirement.
Comments
Post a Comment