记自己的一次小错,python使用ftplib上传xlsx文件,一直打不开

在写爬虫的时候,模仿了浏览器,点击下载,保存txt文件到本地,转为xlsl,再上传到服务器,大概这个过程,上传文件,一直卡在,txt转xlsx上,纠结了很长时间,还是同事发现我的问题,原来我是把txt上传到服务器了,

一开始的代码:

# 配出文件 转换为excel
    # 获得当前目录下所有文件及目录
    lists = os.listdir(downfile)
    # 按时间排序
    lists.sort(key=lambda fn: os.path.getatime(downfile + "/" + fn))
    # 获得最新文件保存
    file_new = os.path.join(downfile, lists[-1])
    # print(file_new)

    f = open(file_new,encoding="gbk")
   
    wo = xlsxwriter.Workbook("%s.xlsx" % times)
    sheet = wo.add_worksheet()
    x = 0
    while True:
        # 按行循环,读取文本文件
        line = f.readline()
        if not line:
            break  # 如果没有内容,则退出循环
        for i in range(len(line.split('\t'))):
            item = line.split('\t')[i]
            sheet.write(x, i, item)  # x单元格经度,i 单元格纬度
        x += 1  # excel另起一行
    f.close()
    wo.close()
    print("准备上传到服务器")
    time.sleep(2)
    hftp = FTP(HOST)
    hftp.login(USER, PASSWD)
    # hftp.set_debuglevel(2)
    # 切换目录
    hftp.set_pasv(False)
    hftp.cwd(senddirname)
    try:
        base = hftp.mkd(sendfiletime)
    except:
        print("目录已存在")
    # 打开服务器目录
    hftp.cwd(sendfiletime)
    # 保存文件
    time.sleep(3)
    fp = open(file_new, "rb")
    cmd = 'STOR %s' % os.path.basename(sendfile)
    # hftp.storbinary('STOR %s' % os.path.basename(sendfile), open(file_new, 'rb'))
    hftp.storbinary(cmd, fp)
    hftp.close()

后来我改了一下,fp的时候,不应该匹配出最新的文件了,我修改了直接,匹配出转换出的名字,修改代码如下:

    # 打开服务器目录
    hftp.cwd(sendfiletime)
    # 保存文件
    time.sleep(3)
    fp = open("%s.xlsx" % times, "rb")
    cmd = 'STOR %s' % os.path.basename(sendfile)
    # hftp.storbinary('STOR %s' % os.path.basename(sendfile), open(file_new, 'rb'))
    hftp.storbinary(cmd, fp)
    hftp.close()

和上面一样,保存的上面文件名,直接匹配什么文件名

txt转为xlsx 我用的是xlsxwriter

你可能感兴趣的:(python,python,ftplib,xlswriter)