2021-10-24python实现ftp 上传下载文件功能

该博客展示了如何使用Python的ftplib库进行FTP连接,实现从FTP服务器下载文件和上传本地文件到FTP服务器的功能。主要涉及FTP连接、改变工作目录、列出文件列表以及文件的读写操作。
# -*- coding:utf-8 -*-
# date:2021-10-20


from ftplib import FTP
import os


def ftp_connect(host, username, password, port=21):
    ftp = FTP()
    ftp.encoding='gbk'
    ftp.connect(host, port, timeout=60)
    ftp.login(username, password)

    return ftp



# def file_list(my_ftp,remote_path):
#     my_ftp.cwd(remote_path)
#     file_list = my_ftp.nlst()
#     return file_list

def download_files(local_path, remote_path):
    my_ftp.cwd(remote_path)
    file_list = my_ftp.nlst()

    for filename in file_list:
        print(filename)
        full_filename = os.path.join(local_path, filename)

        buffer_size = 1024
        f = open(full_filename, 'wb')
        my_ftp.retrbinary("RETR %s" % filename, f.write, buffer_size)
        f.close()


def upload_files(local_path,remote_path):
    my_ftp.cwd(remote_path)
    file_list = os.listdir(local_path)

    for local_filename in file_list:
        local_fullfile = os.path.join(local_path, local_filename)

        buff_size = 1024
        file_handler = open(local_fullfile, 'rb')
        my_ftp.storbinary("STOR %s" % local_filename, file_handler, buff_size)
        file_handler.close()


def myftp_close():
    my_ftp.quit()


if __name__ == '__main__':
    my_ftp = ftp_connect('127.0.0.1', 'ftp1', '1234567')

    local_path = r'F:/temp'
    remote_path = r"ftp1/"

    # download_files(local_path, remote_path)
    upload_files(local_path,remote_path)

    myftp_close()

### Python 自动化办公案例展示 #### 案例 1: Excel 数据处理脚本 通过 `pandas` 库读取、修改并保存 Excel 文件实现批量数据处理。 ```python import pandas as pd df = pd.read_excel('data.xlsx') # 对数据进行操作... df.to_excel('output.xlsx', index=False) ``` #### 案例 2: Word 文档自动生成报告 利用 `docx` 库创建带有图表和表格的专业文档。 ```python from docx import Document document = Document() document.add_heading('月度销售总结', level=1) table = document.add_table(rows=1, cols=3) # 添加内容到表格中... document.save('report.docx') ``` #### 案例 3: PDF 合并与拆分工具 借助 `PyPDF2` 实现多个 PDF 的合并或单个文件的分割功能[^1]。 #### 案例 4: 邮件群发助手 基于 SMTP 协议发送个性化邮件给不同收件人列表中的成员。 ```python import smtplib server = smtplib.SMTP('smtp.example.com') for recipient in recipients_list: server.sendmail(sender_email, recipient, message_body) server.quit() ``` #### 案例 5: 日历事件同步器 连接 Google Calendar API 或 Outlook Calendar 接口完成日程安排自动化管理[^2]。 #### 案例 6: 图像批处理程序 使用 OpenCV 进行图片格式转换、尺寸调整以及水印添加等操作。 ```python import cv2 img = cv2.imread('input.jpg') resized_img = cv2.resize(img, (new_width, new_height)) cv2.imwrite('output.png', resized_img) ``` #### 案例 7: PowerPoint 幻灯片制作机器人 调用 python-pptx 创建演示文稿,并支持幻灯片模板应用及动画效果设置。 ```python from pptx import Presentation prs = Presentation(template_path) slide_layout = prs.slide_layouts[0] slide = prs.slides.add_slide(slide_layout) # 设置幻灯片内容... prs.save('presentation.pptx') ``` #### 案例 8: FTP 文件上传下载客户端 构建简单的FTP服务器交互应用程序用于远程传输文件资源。 ```python from ftplib import FTP ftp = FTP(host='example.com') with open(local_file, 'rb') as f: ftp.storbinary(f'STOR {remote_filename}', fp=f) ftp.quit() ``` #### 案例 9: OCR 文字识别服务集成 结合 Tesseract 工具包提取扫描图像内的文字信息以便后续编辑加工。 ```python import pytesseract text = pytesseract.image_to_string(image, lang='chi_sim') print(text.strip()) ``` #### 案例 10: 财务报表生成器 根据预定义模版快速汇总各类财务指标形成结构化的电子表格形式输出。 ```python template_df = pd.DataFrame(columns=['科目名称','本期金额']) final_report = template_df.append(new_data_rows) final_report.to_csv('financial_statement.csv', encoding='utf-8-sig') ``` #### 案例 11: 定时提醒闹钟设定 开发跨平台桌面通知插件,在指定时间触发声音提示或者弹窗显示重要事项提醒[^3]。 #### 案例 12: 网页抓取新闻资讯聚合 编写网络爬虫采集各大网站最新动态更新至本地数据库供内部查阅参考。 ```python import requests response = requests.get(url=news_page_url) html_content = response.text # 解析 HTML 获取所需文章链接... ``` #### 案例 13: 社交媒体营销活动监控面板 对接微博、微信公众号接口统计粉丝增长趋势、互动量变化情况绘制可视化图表辅助决策制定。 #### 案例 14: ERP 系统订单状态跟踪查询 建立 RESTful Web Service 查询企业内部管理系统内特定客户订单流转进度详情记录。 #### 案例 15: CRM 客户关系维护聊天机器人 训练自然语言理解模型解析用户提问意图并通过即时通讯软件提供针对性解答建议。 #### 案例 16: HR 员工考勤打卡签退登记表单设计 采用 Flask/Django 开发在线填报页面收集员工每日上下班刷卡时间戳录入HRIS系统存档备案。 #### 案例 17: IT 设备资产管理清单编制 运用 SQLite/MySQL 存储公司固定资产编号、购置日期、折旧年限等相关参数便于定期盘点核查资产状况。 #### 案例 18: 法律文书校验纠错辅助工具 引入正则表达式规则库检测合同条款表述准确性防止因措辞不当引发法律纠纷风险隐患。 #### 案例 19: 教育培训机构课程排课调度算法优化 研究遗传算法原理应用于教室分配、教师授课时段规划等问题提高教学资源配置效率降低运营成本支出。 #### 案例 20: 物流运输路线规划模拟仿真 搭建 GIS 地理信息系统环境计算最优配送路径减少车辆行驶里程节省燃油消耗费用开支。 #### 案例 21: 医疗机构挂号预约服务平台建设 整合医院HIS核心业务流程打造便捷高效的线上就医咨询入口改善患者就诊体验满意度评价体系。 #### 案例 22: 政府部门信息公开发布门户运维保障 遵循政府网站建设标准规范确保政务公开透明度满足公众知情权需求促进社会和谐稳定发展局面形成。 #### 案例 23: 科研项目申报材料审核评分机制探索实践 参照同行评议方法论框架评估科研成果质量水平为评审专家打分提供科学依据支撑学术诚信体系建设工作推进落实到位。 #### 案例 24: 新闻传媒行业舆情监测预警应急响应预案演练 部署大数据分析引擎实时捕捉互联网舆论热点话题演变轨迹提前做好危机公关准备工作有效应对突发公共事件带来的负面影响冲击挑战。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值