用Python在FTP中创建年/月/日文件夹结构

2024-09-26 22:07:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找使用pythonftplib模块创建一个年/月/日文件夹结构的选项

连接:

ftp = ftplib.FTP(ftp_servidor, ftp_usuario, ftp_clave)

加载变量:

^{pr2}$

功能:

def cdTree(ftp, filename=None, path=None):

    if filename is not None:
        date = datetime.datetime.strptime(filename, '%Y-%m-%dT%H-%M-%S.txt')
        path = ftp_raiz + date.strftime('%Y') + '/' + date.strftime('%m') + '/' + date.strftime('%d')
        print filename
    if path != "":
        try:
            ftp.cwd(path)
        except error_perm as e:
            print e, ", creating folder"
            print path
            cdTree(ftp, path="/".join(path.split("/")[:-1]))
            ftp.mkd(path)
            ftp.cwd(path)

cdTree(ftp, filename, 'TEST')

最后,我不创建文件夹结构,它会抛出以下错误:

2018-10-18T00-00-00.txt
550 Failed to change directory. , creating folder
2018/10/18
550 Failed to change directory. , creating folder
2018/10
Traceback (most recent call last):
  File "ftp2.py", line 34, in <module>
    cdTree(ftp, filename)
  File "ftp2.py", line 30, in cdTree
    cdTree(ftp, path="/".join(path.split("/")[:-1]) )
  File "ftp2.py", line 31, in cdTree
    ftp.mkd(path)
  File "C:\python27\lib\ftplib.py", line 589, in mkd
    resp = self.sendcmd('MKD ' + dirname)
  File "C:\python27\lib\ftplib.py", line 251, in sendcmd
    return self.getresp()
  File "C:\python27\lib\ftplib.py", line 226, in getresp
    raise error_perm, resp
ftplib.error_perm: 550 Create directory operation failed.

注意:执行只创建一个文件夹的测试,它可以工作!在


Tags: pathinpy文件夹nonedatelineftp
1条回答
网友
1楼 · 发布于 2024-09-26 22:07:25

你的代码对我来说没什么意义。在

我相信你想要这个:

def cdTree(ftp, path):
    print "entering folder {0}".format(path)
    try:
        ftp.cwd(path)
    except:
        print "failed to enter, creating"
        cdTree(ftp, path="/".join(path.split("/")[:-1]))
        ftp.mkd(path)
        ftp.cwd(path)

ftp_raiz = 'TEST/'
filename = '2019-10-01T00-00-00.txt'

date = datetime.datetime.strptime(filename, '%Y-%m-%dT%H-%M-%S.txt')
path = ftp_raiz + date.strftime('%Y/%m/%d')

cdTree(ftp, path)

相关问题 更多 >

    热门问题