Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何找到列表中最后一个目录中的目录_Python - Fatal编程技术网

Python 如何找到列表中最后一个目录中的目录

Python 如何找到列表中最后一个目录中的目录,python,Python,通过这段代码,我得到了FTP服务器中存在的目录名称列表,现在我可以找到列表中最后一个目录 import ftplib import re import string ftp = ftplib.FTP('') # For access FTP link. ftp.login ("") ftpdir = ftp.cwd('') data=[] ftp.dir(data.append) for line in data: string.find("DIR","data") i

通过这段代码,我得到了FTP服务器中存在的目录名称列表,现在我可以找到列表中最后一个目录

import ftplib  
import re
import string
ftp = ftplib.FTP('')    # For access FTP link.
ftp.login ("")
ftpdir = ftp.cwd('')
data=[]
ftp.dir(data.append)
for line in data:
    string.find("DIR","data")
    if "DIR" in line:
           print line
我的输出是:

import ftplib  
import re
import string
ftp = ftplib.FTP('')    # For access FTP link.
ftp.login ("")
ftpdir = ftp.cwd('')
data=[]
ftp.dir(data.append)
for line in data:
    string.find("DIR","data")
    if "DIR" in line:
           print line
12-09-11 10:04下午mcl\U 201147\U hw79u\U 05
12-08-11 01:19上午mcl_201148_hw79u_02
12-16-11 12:53下午mcl_201149_hw79u_07
12-25-11 12:11上午12:11 mcl_201150_hw79u_05
01-07-12 12:00AM mcl_201151_hw79u_04
01-07-12 11:37下午mcl_201152_hw79u_05
01-17-12 01:06AM mcl_201201_hw79u_04
01-29-12 12:52上午mcl_201202_hw79u_04
02-04-12 01:06上午mcl_201203_hw79u_03
02-11-12 01:28上午mcl_201204_hw79u_05
02-17-12 01:12上午mcl_201205_hw79u_05
02-19-12 01:22上午mcl_201206_hw79u_05
03-02-12 02:24AM mcl\U 201207\U hw79u\U 05
03-04-12 02:01上午mcl_201208_hw79u_05
03-05-12 12:25下午mcl_201209_hw79u_06

我想查找列表中的最后一个目录(03-05-12 12:25PM mcl_201209_hw79u_06)

如果这是一个列表,您可以这样做

import ftplib  
import re
import string
ftp = ftplib.FTP('')    # For access FTP link.
ftp.login ("")
ftpdir = ftp.cwd('')
data=[]
ftp.dir(data.append)
for line in data:
    string.find("DIR","data")
    if "DIR" in line:
           print line
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
假设列表索引出现问题,程序将不会停止:

import ftplib  
import re
import string
ftp = ftplib.FTP('')    # For access FTP link.
ftp.login ("")
ftpdir = ftp.cwd('')
data=[]
ftp.dir(data.append)
for line in data:
    string.find("DIR","data")
    if "DIR" in line:
           print line
try:
  return data[-1]
except IndexError as e:
  return e
// in your code you can just print "e" and you can continue like this...

// version two demonstrate why try, except is useful

def getdir(data):
   try:
     data[-1]
   except IndexError as e:
     return e

....
print getdir(data)    
print 1+1
这是你想要的吗

import ftplib  
import re
import string
ftp = ftplib.FTP('')    # For access FTP link.
ftp.login ("")
ftpdir = ftp.cwd('')
data=[]
ftp.dir(data.append)
for line in data:
    string.find("DIR","data")
    if "DIR" in line:
           print line

为了有用,您应该使用logger跟踪
e
(错误消息),并返回默认值(如
None
),这样您就知道有错误/不存在目录

import ftplib  
import re
import string
ftp = ftplib.FTP('')    # For access FTP link.
ftp.login ("")
ftpdir = ftp.cwd('')
data=[]
ftp.dir(data.append)
for line in data:
    string.find("DIR","data")
    if "DIR" in line:
           print line
我不确定这里的
string
模块有什么用。如果只是在列表中找到我需要的东西,我很少使用这个模块

import ftplib  
import re
import string
ftp = ftplib.FTP('')    # For access FTP link.
ftp.login ("")
ftpdir = ftp.cwd('')
data=[]
ftp.dir(data.append)
for line in data:
    string.find("DIR","data")
    if "DIR" in line:
           print line

请给我这些描述和编辑您的原始文章

import ftplib  
import re
import string
ftp = ftplib.FTP('')    # For access FTP link.
ftp.login ("")
ftpdir = ftp.cwd('')
data=[]
ftp.dir(data.append)
for line in data:
    string.find("DIR","data")
    if "DIR" in line:
           print line
  • 给我打印行的结果
  • 给我打印数据的结果
  • 这是什么
    dir
    你想要的
  • 在回答我的问题时,你可能会想出如何解决它

    import ftplib  
    import re
    import string
    ftp = ftplib.FTP('')    # For access FTP link.
    ftp.login ("")
    ftpdir = ftp.cwd('')
    data=[]
    ftp.dir(data.append)
    for line in data:
        string.find("DIR","data")
        if "DIR" in line:
               print line
    
    谢谢

    import ftplib  
    import re
    import string
    ftp = ftplib.FTP('')    # For access FTP link.
    ftp.login ("")
    ftpdir = ftp.cwd('')
    data=[]
    ftp.dir(data.append)
    for line in data:
        string.find("DIR","data")
        if "DIR" in line:
               print line
    

    好的。所以我假设每一行都是表单的记录:

    import ftplib  
    import re
    import string
    ftp = ftplib.FTP('')    # For access FTP link.
    ftp.login ("")
    ftpdir = ftp.cwd('')
    data=[]
    ftp.dir(data.append)
    for line in data:
        string.find("DIR","data")
        if "DIR" in line:
               print line
    
    12-09-11 10:04下午mcl\U 201147\U hw79u\U 05
    假设您没有办法将
    时间
    目录名
    分开,您可以这样做

    import ftplib  
    import re
    import string
    ftp = ftplib.FTP('')    # For access FTP link.
    ftp.login ("")
    ftpdir = ftp.cwd('')
    data=[]
    ftp.dir(data.append)
    for line in data:
        string.find("DIR","data")
        if "DIR" in line:
               print line
    
    list index out of range
    2
    
    mystring=“12-09-11 10:04下午mcl\U 201147\U hw79u\U 05”
    dirname=mystring.split(“”[-1]
    //['12-09-11','10:04PM','
    //和[-1]表示列表中的最后一个元素(按相反顺序)
    
    你也可以先尝试
    ''.join(mystring.split())
    ,然后应用
    split()
    (没有任何参数),但我认为立即执行
    拆分
    更容易,内存效率更高,因为第一种方法只创建一个列表,而另一种方法将创建两个列表

    import ftplib  
    import re
    import string
    ftp = ftplib.FTP('')    # For access FTP link.
    ftp.login ("")
    ftpdir = ftp.cwd('')
    data=[]
    ftp.dir(data.append)
    for line in data:
        string.find("DIR","data")
        if "DIR" in line:
               print line
    
    如果
    尚未输入
    str
    类型,请尝试查看
    str(行)
    是否有帮助

    import ftplib  
    import re
    import string
    ftp = ftplib.FTP('')    # For access FTP link.
    ftp.login ("")
    ftpdir = ftp.cwd('')
    data=[]
    ftp.dir(data.append)
    for line in data:
        string.find("DIR","data")
        if "DIR" in line:
               print line
    
    如果您需要查找所有
    目录名
    ,请使用谷歌
    列表理解
    。它被认为比循环更有效。这是一个简洁的方式写下你将要实现的目标。。。当然,根据您的要求进行适当的剥离

    import ftplib  
    import re
    import string
    ftp = ftplib.FTP('')    # For access FTP link.
    ftp.login ("")
    ftpdir = ftp.cwd('')
    data=[]
    ftp.dir(data.append)
    for line in data:
        string.find("DIR","data")
        if "DIR" in line:
               print line
    
    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']
    // and [-1] indicates the last element in the list (in reverse order)
    

    最后,我能够解决我的问题,借助上面的代码,我们能够过滤所有目录的列表,然后我们能够找到位于最后一个目录中的目录。谢谢大家的帮助。

    谢谢。。我在FTP位置有不同类型的文件,我只想要目录,当我得到所有目录名时,我想在最后一个位置找到目录。@user1227493很抱歉,但我不太理解这个要求。那么
    数据中有什么?目录和文件?您是什么意思
    在最后一个位置查找目录?查看我的编辑以便我可以提供帮助。我的输出是01-29-12 12:52AM mcl_201202_hw79u_04 02-04-12 01:06AM mcl_201203_hw79u_03 02-11-12 01:28AM mcl_201204_hw79u_05 02-17-12 01:12AM mcl_201205_hw79u 05 02-19-12 01:22AM mcl_201206_hw79u 05 03-02-12:244;mcl_201207_hw79u_05 03-04-12 02:01AM mcl_201208_hw79u_05 03-05-12 12:25PM mcl_201209_hw79u_06我想找到列表中的最后一个目录(03-05-12 12:25PM mcl_201209_hw79u_06)
    
    import ftplib  
    import re
    import string
    ftp = ftplib.FTP('')    # For access FTP link.
    ftp.login ("")
    ftpdir = ftp.cwd('')
    data=[]
    ftp.dir(data.append)
    for line in data:
        string.find("DIR","data")
        if "DIR" in line:
               print line