用于从FTP站点下载文件的Python脚本

时间:2014-08-25 07:19:09

标签: python python-2.7 ftp wmi ftplib

我的笔记本电脑有静态IP(193.2.1.8),是没有互联网接入的小型本地专用网络的一部分。通常,我需要执行以下操作:

  1. 从笔记本电脑上断开专用网络的局域网电缆。
  2. 将笔记本电脑连接到可以访问互联网的lan电缆。
  3. 在Windows网络配置中将IP配置从静态IP 更改为自动检测
  4. 打开FileZilla(FTP程序)并将其连接到FTP站点,选择一个文件(已知文件名)并下载到硬盘上的特定位置。
  5. 然后断开可以访问互联网的局域网电缆。
  6. 连接专用网络的局域网电缆。
  7. 将IP配置更改回原始静态IP和子网掩码。
  8. 我想简单地说这个过程。因此想着创建一个

    的Python脚本
    1. 自动更改Windows的IP配置。
    2. 连接到FTP站点并将文件下载到某个位置。
    3. 将IP配置更改回原始设置。
    4. 感谢有关建议使用WMI模块的SO帖子,我设法使用WMI模块更改了IP配置,如下所示:

      import wmi
      nic_configs=wmi.WMI().Win32_NetworkAdapterConfiguration(IPEnabled=True)
      nic = nic_configs[0]
      nic.EnableDHCP()
      

      但我现在的问题是,我怎么知道我是否可以安全地进行FTP操作?在启用DHCP后,如何确认互联网连接是否正常?

      对于FTP操作,我正在考虑使用ftplib

      有没有更好的方法呢?

      仅供参考:我使用的是Windows XP SP3 32位,python 2.7.5

1 个答案:

答案 0 :(得分:2)

  

如何知道我是否可以安全地进行FTP操作?

使用ftplib的第一步是创建一个FTP实例。如果您为其指定主机名,则会为您创建方法调用connect(host)。如果网络无法访问,则它将在连接尝试失败并引发异常。还有一个超时选项来设置连接超时。

如果连接尝试成功,您的网络适配器显然已准备就绪。如果提出异常,则不是。您可以构建基于此的连接逻辑(理想情况下使用重试装饰器,或者甚至是每次尝试之间具有小睡眠的简单循环)。