python怎么编程上传资料_答「如何用 Python / XXX 解决『自动上传文件』/ YYY 问题」问...

本文探讨了Python为何是解决实际问题的理想选择,强调其简洁的语法和丰富的库资源。文章指出,编程分为解决现有问题和探索可能解决方案两个方向,并以自动浏览器操作为例,介绍了多种可能的方法,如Selenium、图形界面自动化和HTTP协议。建议初学者通过阅读文档、编写代码和学习基础IT知识来积累经验,以更好地应对各种编程挑战。
摘要由CSDN通过智能技术生成

首先恭喜你!选择 Python 而不是其它的 XXX 来尝试解决一个实际的问题,几乎比选择任何其它的程序语言都更接近解决方案。但我不会把你直接扔到答案面前;我要拉你往回走一步:

当我们说 Python 好用的时候,我们在说什么?

编程其实可以被分为两个完全不同的方向:为解决存在的问题而编程,和为寻找可能性而编程。有些「通用」语言会横跨两个方向,如 C++ 就是这样的例子;更多的语言实际上偏向于其中一个方向。Python,Golang 一般被认为以快速解决特定问题为主要设计目标;相对的,Haskell、Clojure 等语言则着力于凸显内部逻辑的一致性。

因此,如果你的目标是完成一些自动化的任务,选择 Python 是一个非常好的开始。原因有两点:1、Python 本身语法简单,因此不需要浪费太多时间在语言本身上;2、Python 有大量的工具完成特定的任务。但是要找到合适的工具,你需要了解你的任务,即「问题域」。

回到你的例子中来说好了。你的目标是用程序自动完成一些你在浏览器中的操作(如上传文件),那么在尝试寻找和使用工具之前,你应该先充分理解这个问题本身:「上传文件」实际是一个什么样的过程?最明显的两点是,这个过程:从浏览器中完成

与网站进行交互

那么要让程序自动完成这个过程,可以从两个方向下手:

- 从浏览器中完成

- 如何用程序操作浏览器?

- 网站测试工具:Selenium

- 图形界面自动化:鼠标精灵 / Automator / VBS / Apple Script

- 与网站进行交互

- 程序如何与网站进行交互?

- HTTP协议:urllib / requests

- 模拟浏览器:PhantomJS / node-webkit

上面列的只是解决这个问题的不同方向;真正要解决,需要挑一个方向,熟悉相关的工具,不断尝试,直到确定达到目标,或者确定受到条件限制必须改变方向。这里需要的就是耐住性子读文档、写代码、分析错误、修改代码而已,「无他,唯手熟耳」。

如果你要问,「我怎么知道有这么多方法?」答案和上一条也是一样的,「无他,唯手熟耳」。经验涉及的方向足够广泛之后,解决方法总会手到擒来;而积累经验的前提,总是打好基础。打好基础知识必须靠多读书读好书,最简单快捷的方法其实是直接学习一些 IT 专业的入门课程(如 [1] / [2] 或其它国外学校 IT 专业大一的课程)以获得一个较为全面的了解。作为 IT 学科中的「通识」数据结构和算法、操作系统和网络通信协议的入门知识,几乎对于任何方向的深入都会起到重要的作用。有了这些基础的概念之后,再对相关领域进行深入。如果你的关注点在于 web 开发,则 HTML5 / JavaScript / CSS 相关的入门练习是必不可少的;如果关注点是网络通信,则 [3] 这样的经典几乎是不能不读的。书读的足够多,涉及的范围足够广,碰到特定问题的时候,自然就会有现成的解法自动的「匹配」到问题上。

说到底,IT 毕竟已经是一个相对成体系的学科了。想要用 IT 的方法解决问题,跟着专业培训的方向入门,总是最可靠的方法。

[1] MIT OCW Information Technology I Lecture Notes

[2] MIT OCW Information Technology Essentials Lecture Notes

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值