`
longforfreedom
  • 浏览: 198778 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

简单的FTP搜索-Python实现

阅读更多

动机:

   某日,在公司FTP上找东西,太原始了,没有搜索,翻了大半天,终于找到了,过后,就动手写了一段。

没有建索引,只是根据关键字遍历所有文件名查找,用的时候才去查,也很原始 代码如下:

#!/bin/usr/evn python
# -*- coding:utf-8 -*-
####################################
# --2009.11.23--
# --PM 1:00--
# --ActivePython 2.6.2.4--
# --by migle---pisoft--
####################################
### 搜索公司FTP服务器
####################################

import sys
import re
import ftplib

ERR_NOERR, ERR_PARAM, ERR_FTP = range(3)

def walk_ftp(ftp, cd = None, nodir = True):
	if cd:
		stack = [('d', cd)]
	else:
		stack = [('d', '/')]
	def get_item_info(line):
		info = line.split()
		stack.append((info[0][0], '/'.join([pwd, info[8]])))
	while stack:
		s_top = stack.pop()
		if s_top[1][-2:]=='/.' or s_top[1][-3:]=='/..':
			continue
		if s_top[0] == '-':
			yield s_top[1].replace('//', '/')
		elif s_top[0] == 'd':
			try:
				ftp.cwd(s_top[1])
			except:
				continue
			pwd = ftp.pwd()
			ftp.dir(get_item_info)
			if not nodir:
				yield s_top[1].replace('//', '/')

if __name__ == '__main__':
	host = '服务器地址'
	user = '用户名'
	passwd = '密码'

	for param in sys.argv[1:]:
		key = param[:2]
		value = param[3:]
		if key == '-k':
			pattern = value
		else:
			print "useage!!!"
			print "-k关键字"
			sys.exit(ERR_PARAM)
	ftp = ftplib.FTP(host)
	ftp.login(user, passwd)
	print 'connected is success'
	try:
		for item in walk_ftp(ftp):
			if re.search(pattern,item.split('/')[-1]):
				print '找到:',item
	except:
		exitcode = ERR_FTP
	else:
		exitcode = ERR_NOERR
	ftp.quit()
	sys.exit(exitcode)

以上代码保存为FTPSearcher.py

运行:搜索文件名中包含"智能电网"的文件

D:\code\python>python FTPSearcher.py -k智能电网

 结果如下图所示

 


 

  • 大小: 24.9 KB
0
1
分享到:
评论

相关推荐

    chilkat-9.5.0-python-3.7-x86_64-linux.tar.gz

    这通常涉及将库的二进制文件复制到系统的`site-packages`目录,或者在Python启动时指定额外的搜索路径。例如: ```bash sudo cp chilkat-9.5.0-python-3.7-x86_64-linux/* /usr/local/lib/python3.7/dist-packages/...

    SEO-python养权重站教程.docx

    - 编写自动发布的Python脚本或利用现有的CMS插件实现内容自动化发布。 - 配置自动提交功能,确保内容能及时被搜索引擎抓取和索引。 #### 总结 本文档详细介绍了如何使用Python技术进行SEO优化和内容处理,通过合理...

    磁力链接-基于Python实现的磁力链接搜索爬虫-爬取btsow输出文本.zip

    在本项目中,我们将探讨如何使用Python编程语言实现一个磁力链接的搜索爬虫,专注于爬取btsow网站的数据并将其输出为文本格式。 首先,理解Python爬虫的基础是至关重要的。Python提供了许多库,如BeautifulSoup、...

    Python-whipFTP是一个使用tkinterGUI工具python编写的FTPSFTP客户端

    解压后,开发者可以查看源代码,学习Python如何实现FTP/SFTP客户端,以及tkinter在GUI设计中的具体应用。这为初学者提供了很好的学习材料,加深对Python网络编程和GUI设计的理解。 总的来说,Python-whipFTP是一个...

    Python34中文手册(官方文档).docx

    - **语言特性**:Python是一种简单且功能强大的编程语言,支持高效的高级数据结构,易于进行面向对象编程。 - **适用范围**:适用于多种平台上的脚本编写或应用程序开发。 - **获取方式**:可以从Python官方网站免费...

    【合集】180415-Python 标准库及拓展_7幅导图.pdf

    Python标准库是Python编程语言的核心组成部分,包含了大量预先编写好的模块和函数,为开发者提供了丰富的功能,涵盖了网络通信、文件处理、系统操作、数据结构、国际化等各个方面。这些标准库使得Python成为一种非常...

    Python-所有算法在Python中实现用于教育

    "Python-所有算法在Python中实现用于教育"项目旨在为学生和教师提供一个全面的资源库,帮助他们理解和掌握各种计算机科学算法。这个压缩包可能包含了大量的Python代码示例,涵盖了排序、搜索、图论、动态规划等经典...

    如何用python实现每天定时备份交换机配置文件?.pdf

    Python 实现每天定时备份交换机配置文件 通过本文,我们将学习如何使用 Python 实现每天定时备份交换机配置文件。该过程主要涉及到三个步骤:编写 Python 脚本、设置交换机 FTP 服务和设置 Windows 任务计划程序。 ...

    Python-master_python_

    9. **网络编程**:Python的socket库可用于实现客户端和服务器的通信,如HTTP、FTP协议的实现。 10. **并发编程**:多线程、多进程、协程(如asyncio库)等,提高程序的执行效率。 11. **测试与调试**:编写单元...

    Python-PyOneoneindex的python版本

    PyOneoneindex是一个基于Python实现的项目,它提供了对Oneindex的Python接口支持。Oneindex是一款开源的、自托管的文件分享索引系统,用户可以通过它来管理和分享自己的云存储文件,如Google Drive、Dropbox等。这个...

    文件传输服务(可搜索文件)python.zip

    本项目通过Python实现了一个FTP(File Transfer Protocol)服务器,提供了文件搜索和下载的功能,这对于开发者来说是一个实用且易扩展的工具。接下来,我们将详细讨论Python在构建FTP服务器以及实现搜索和下载功能...

    Python灰帽子-黑客与逆向工程师的Python编程之道[简体中文版]

    中文名: Python灰帽子-黑客与逆向工程师的Python编程之道 原名: Gray Hat Python:Python Programming for Hackers and Reverse Engineers 作者:Justin Seitz 资源格式: PDF 版本: 扫描版 出版社: 电子工业出版社 ...

    Python 学习资源集合

    - sortedcontainers:快速的纯Python实现,包括SortedList、SortedDict和SortedSet类型。 3. **反垃圾邮件**: - django-simple-captcha:高度可定制的Django验证码应用。 - django-simple-spam-blocker:简单的...

    Programming Python 中文第四版

    5. **网络编程**:Python在网络编程领域也有广泛的应用,如HTTP客户端和服务器、SMTP/POP3电子邮件、FTP协议等,书中会介绍如何使用Python实现这些功能。 6. **数据库编程**:介绍了Python与各种数据库的交互,包括...

    详解Python下ftp上传文件linux服务器

    通过Python的`ftplib`模块,我们可以方便地实现FTP客户端的功能,包括上传、下载、列出目录内容以及管理远程文件等。本篇文章主要讲解如何使用Python的`ftplib`模块上传文件到Linux服务器。 首先,我们需要导入`...

    使用python实现正则匹配检索远端FTP目录下的文件

    本篇文章介绍了一个使用Python实现的简单方法,通过正则表达式匹配远程FTP目录下的文件。这种方法对于自动化任务或者特定文件筛选非常有用。 首先,我们需要导入Python中的几个关键库:`re`(用于正则表达式处理)...

    python标准库3.7.3.docx

    - **2.6 cStringIO 模块**:一个C实现的字符串I/O类,比纯Python实现更快。 - **2.7 mmap 模块**:提供了创建和操作内存映射文件的接口。 - **2.8 UserDict 模块**:包含一个可以像字典那样使用的类。 - **2.9 User...

    Python对Excel操作详解

    Python 很多功能都是靠模块实现的,比如 ftplib 模块负责 ftp 功能的实现,math 模块囊括了基本数学公式,如果我们想要引用这些模块,需要使用命令 import 模块名称,如import ftplib 和 import math 。如果想要使用...

    Python对Excel操作教程.doc

    Python有很多功能都是靠模块实现的,比如ftplib模块负责ftp功能的实现,math模块囊括了基本数学公式。如果我们想要引用这些模块,需要使用命令import模块名称,如import ftplib和import math。如果想使用math模块中...

Global site tag (gtag.js) - Google Analytics