“最佳”语言是相当主观的。Python 通常被认为易于学习和阅读,而 Perl 通常被戏称为“只写”语言。另一方面,Perl 广泛用于网络管理。Python 往往更多地用于系统管理或大型编程。两者都有卓越的领域,也有他们不擅长的领域。
任何一种语言都可以让您相当轻松地解决问题。它们都有所有必要的模块作为捆绑库,或者很容易获得。
如果我使用 Python,我会使用 ConfigParser
http://docs.python.org/library/configparser.html#module-ConfigParser
存储每个项目的设置,ftplib:
http://docs.python.org/library/ftplib.html
与 ftp 服务器和众多数据库之一进行通信。例如,假设您使用的是 postgres:
http://www.pygresql.org/
最后,对于命令行选项,我将使用 Python 附带的出色的选项解析器模块:
http://docs.python.org/library/optparse.html#module-optparse
从代码的角度来看,我将拥有以下对象:
# Reads in a config file, decides which feed to use, and passes
# the commands in to one of the classes below for import and export
class FeedManager
# Get data from db into a canonical format
class DbImport
# Put data into db from a canonical format
class DbExport
# Get data from ftp into a canonical format
class FtpImport
# Put data into ftp from canonical format
class FtpExport
每个类都转换为/从规范格式转换,该格式可以交给其他互补类之一。
配置文件可能如下所示:
[GetVitalStats]
SourceUrl=ftp.myhost.com
SourceType=FTP
Destination=Host=mydbserver; Database=somedb
SourceType=Postgres
最后,您可以这样称呼它:
process_feed.py --feed=GetVitalStats