python远程访问服务器获取文件

9 篇文章 0 订阅
7 篇文章 0 订阅

一、sftp

1、使用paramiko模块进行sftp传输,实现在线读取文件,注意paramiko模块存在一些依赖,可能安装的时候会有一些小的障碍。

    client = paramiko.SSHClient()

    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    client.connect(host_ip, port, username, password, timeout=5)
    sftp_client = client.open_sftp()
    logging.info(sftp_client)
    remote_file = sftp_client.open(data_path+ filename +".txt", 'r')

二、ftp

使用python自带的ftplib模块 进行ftp传输,这边是下载到本地在进行读取文件,这边需要注意要问清楚是不是ftp传输,因为一般ftp服务器是关闭的,在连接的时候是连接不上的。

def ftpconnect(host, port, username, password):
    ftp = FTP()
    ftp.connect(host, int(port))
    ftp.login(username, password)
    return ftp

#   下载文件
def downloadfile(ftp, remotepath, localpath, filename):
    print(localpath)
    bufsize = 1024
    ftp.cwd(remotepath)
    ftp.dir()
    fp = open(localpath + filename,'wb')
    ftp.retrbinary('RETR %s' % os.path.basename(filename), fp.write, bufsize)
    fp.close()
    
#   上传文件
def uploalfile(ftp, remotepath, localpath):
    bufsize = 1024
    fp = open(localpath, 'rb')
    ftp.storbinary('STOR ' + remotepath, fp, bufsize)
#   ftp.set_debuglevel(0)
    ftp.close()

 

  • 3
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
【资源说明】 基于原生前端和Python Flask后端的文件服务器源码+使用说明+详细注释.zip 一、简介 基于原生前端和 Python Flask 后端的文件服务器,可远程访问、下载和上传文件,可用于某一设备向其他设备开放的文件访问。局域网搭配内网穿透可实现公网访问。<br> (2023.04.09 更新:本项目仅推荐在 windows 环境下使用。读取硬盘分区的代码不是跨平台的,在其他系统可能出现未知问题。另外,本项目我没有继续更新的意愿,但如果你遇到了 bug 或者提交 pull requests,我会第一时间响应) 二、说明 最开始是想着,实现电脑不在身边的时候直接访问、操作电脑文件。等到做完了才想起来用 ftp 协议配置也更方便,也更稳定;但既然都做完了(;′⌒`)...也就权当一个练手项目吧。<br> 使用 http 实现确实麻烦了,但正好也能用最近学的前端知识做一做交互界面。使用 Windows 自带的 ftp 服务或网上的其他 ftp 客户端 UI 也就那样,自己从零设计 ftp 服务客户端又太麻烦了,选择前端 http 实现正好可以满足 UI 这个需求。<br> 同时不同设备访问只需要浏览器就可以了。~~当然移动端体验可能不太好,因为我没做移动端网页(懒),但是用还是能用的...~~ (2021.09.15 更新:增加了移动端适配,移动端使用体验大幅提升) 三、功能 (1)~~炫酷、人性化使用界面,赏心悦目(划掉)~~<br><br> (2)类似 ftp 服务的文件访问、下载和上传功能,没有删除(没这个需求) 四、使用 (1)安装依赖: ```cmd pip install flask ``` (2)[app.py](app.py) 中设置 SECRET_KEY 值,关于该值 flask 官方的说明: > SECRET_KEY 配置变量是通用密钥,可在 Flask 和多个第三方扩展中使用,如其名所示,加密的强度取决于变量值的随机密度。<br> > 不同的程序要使用不同的密钥,而且要保证其他人不知道你所用的字符串,其主要作用应该是在各种加密过程中加盐以增加安全性。在实际应用中最好将这个参数存储为系统环境变量。 建议通过随机方法获取值,采用系统变量方式存储,然后使用 `os.getenv('SECRET_KEY')` 读取<br><br> (3)定义登录用户名和密码:给 [app.py](app.py) 中的 `SPECIFY_UNAME` `SPECIFY_UPWD` 常量赋值<br><br> (4)运行 [app.py](app.py) 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
要实现 Python 实时访问服务器文件,可以使用 paramiko 库连接远程服务器,并使用 SFTP 协议实时获取文件内容。以下是一个示例代码: ```python import paramiko import time # 远程服务器信息 hostname = 'your_remote_host' port = 22 username = 'your_username' password = 'your_password' # 连接远程服务器 ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(hostname=hostname, port=port, username=username, password=password) # 建立 SFTP 通道 sftp = ssh.open_sftp() # 实时获取文件内容 remote_file = '/path/to/remote/file' local_file = '/path/to/local/file' while True: try: # 获取文件内容 with sftp.open(remote_file) as remote_f, open(local_file, 'w') as local_f: for line in remote_f: local_f.write(line) print(line.strip()) except KeyboardInterrupt: # 用户中断程序 print('User interrupt') break except: # 重新连接服务器 print('Connection lost, try to reconnect...') ssh.connect(hostname=hostname, port=port, username=username, password=password) sftp = ssh.open_sftp() time.sleep(1) # 关闭 SFTP 通道和 SSH 连接 sftp.close() ssh.close() ``` 在上述代码中,通过循环实时获取远程文件内容。当用户按下 Ctrl+C 中断程序时,程序退出循环并关闭连接。如果连接中断,程序会自动重新连接。需要将 `your_remote_host`、`your_username` 和 `your_password` 替换为实际的远程服务器信息。`/path/to/remote/file` 表示远程服务器上的文件路径,`/path/to/local/file` 表示本地文件路径。利用 `sftp.open` 方法可以打开远程文件,并通过 `for` 循环逐行读取文件内容。在每次读取文件内容时,将内容写入本地文件并打印出来。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值