动机:
某日,在公司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
分享到:
相关推荐
这通常涉及将库的二进制文件复制到系统的`site-packages`目录,或者在Python启动时指定额外的搜索路径。例如: ```bash sudo cp chilkat-9.5.0-python-3.7-x86_64-linux/* /usr/local/lib/python3.7/dist-packages/...
- 编写自动发布的Python脚本或利用现有的CMS插件实现内容自动化发布。 - 配置自动提交功能,确保内容能及时被搜索引擎抓取和索引。 #### 总结 本文档详细介绍了如何使用Python技术进行SEO优化和内容处理,通过合理...
在本项目中,我们将探讨如何使用Python编程语言实现一个磁力链接的搜索爬虫,专注于爬取btsow网站的数据并将其输出为文本格式。 首先,理解Python爬虫的基础是至关重要的。Python提供了许多库,如BeautifulSoup、...
解压后,开发者可以查看源代码,学习Python如何实现FTP/SFTP客户端,以及tkinter在GUI设计中的具体应用。这为初学者提供了很好的学习材料,加深对Python网络编程和GUI设计的理解。 总的来说,Python-whipFTP是一个...
- **语言特性**:Python是一种简单且功能强大的编程语言,支持高效的高级数据结构,易于进行面向对象编程。 - **适用范围**:适用于多种平台上的脚本编写或应用程序开发。 - **获取方式**:可以从Python官方网站免费...
Python标准库是Python编程语言的核心组成部分,包含了大量预先编写好的模块和函数,为开发者提供了丰富的功能,涵盖了网络通信、文件处理、系统操作、数据结构、国际化等各个方面。这些标准库使得Python成为一种非常...
"Python-所有算法在Python中实现用于教育"项目旨在为学生和教师提供一个全面的资源库,帮助他们理解和掌握各种计算机科学算法。这个压缩包可能包含了大量的Python代码示例,涵盖了排序、搜索、图论、动态规划等经典...
Python 实现每天定时备份交换机配置文件 通过本文,我们将学习如何使用 Python 实现每天定时备份交换机配置文件。该过程主要涉及到三个步骤:编写 Python 脚本、设置交换机 FTP 服务和设置 Windows 任务计划程序。 ...
9. **网络编程**:Python的socket库可用于实现客户端和服务器的通信,如HTTP、FTP协议的实现。 10. **并发编程**:多线程、多进程、协程(如asyncio库)等,提高程序的执行效率。 11. **测试与调试**:编写单元...
PyOneoneindex是一个基于Python实现的项目,它提供了对Oneindex的Python接口支持。Oneindex是一款开源的、自托管的文件分享索引系统,用户可以通过它来管理和分享自己的云存储文件,如Google Drive、Dropbox等。这个...
本项目通过Python实现了一个FTP(File Transfer Protocol)服务器,提供了文件搜索和下载的功能,这对于开发者来说是一个实用且易扩展的工具。接下来,我们将详细讨论Python在构建FTP服务器以及实现搜索和下载功能...
中文名: Python灰帽子-黑客与逆向工程师的Python编程之道 原名: Gray Hat Python:Python Programming for Hackers and Reverse Engineers 作者:Justin Seitz 资源格式: PDF 版本: 扫描版 出版社: 电子工业出版社 ...
- sortedcontainers:快速的纯Python实现,包括SortedList、SortedDict和SortedSet类型。 3. **反垃圾邮件**: - django-simple-captcha:高度可定制的Django验证码应用。 - django-simple-spam-blocker:简单的...
5. **网络编程**:Python在网络编程领域也有广泛的应用,如HTTP客户端和服务器、SMTP/POP3电子邮件、FTP协议等,书中会介绍如何使用Python实现这些功能。 6. **数据库编程**:介绍了Python与各种数据库的交互,包括...
通过Python的`ftplib`模块,我们可以方便地实现FTP客户端的功能,包括上传、下载、列出目录内容以及管理远程文件等。本篇文章主要讲解如何使用Python的`ftplib`模块上传文件到Linux服务器。 首先,我们需要导入`...
本篇文章介绍了一个使用Python实现的简单方法,通过正则表达式匹配远程FTP目录下的文件。这种方法对于自动化任务或者特定文件筛选非常有用。 首先,我们需要导入Python中的几个关键库:`re`(用于正则表达式处理)...
- **2.6 cStringIO 模块**:一个C实现的字符串I/O类,比纯Python实现更快。 - **2.7 mmap 模块**:提供了创建和操作内存映射文件的接口。 - **2.8 UserDict 模块**:包含一个可以像字典那样使用的类。 - **2.9 User...
Python 很多功能都是靠模块实现的,比如 ftplib 模块负责 ftp 功能的实现,math 模块囊括了基本数学公式,如果我们想要引用这些模块,需要使用命令 import 模块名称,如import ftplib 和 import math 。如果想要使用...
Python有很多功能都是靠模块实现的,比如ftplib模块负责ftp功能的实现,math模块囊括了基本数学公式。如果我们想要引用这些模块,需要使用命令import模块名称,如import ftplib和import math。如果想使用math模块中...