您如何使用脚本语言(PHP,Python等)来提高工作效率?

时间:2010-04-09 05:31:31

标签: php python ruby perl scripting

我是Windows平台上的Delphi开发人员,最近在W3CSchools阅读了PHP教程,看起来很有趣。

我们都知道脚本语言非常擅长网站开发,但我也想利用它来提高我的工作效率或快速完成一些繁琐的任务,也许是一些快速而肮脏的字符串/文件处理?

除软件开发外,您通常使用脚本语言做什么? 我们需要一个响应迅速,体面的IDE /编辑器,以便在为此目的编写脚本时提高工作效率?

10 个答案:

答案 0 :(得分:17)

我会告诉你我是如何通过Windows上的Python提高我的工作效率的。我只是尝试用Python编写所有内容 - 我需要的每个应用程序,除非我知道它不会扩展,我需要更高效的工具(在这种情况下我个人使用C ++,但你也可以使用C#/ Delphi)。

事实证明,对于大多数(> 95%)的工具和实用程序来说,Python(与GUI的PyQt结合使用)已经足够好了,而且它对我来说比C ++更有效。关键是不要将Python视为“脚本语言”。它不仅仅是一种编程语言而不是C ++ / Java / C#/ Delphi /您所说的。它有它的优点,它有其局限性。只要您了解它们并知道如何为工作选择合适的工具,您就可以了。

您不需要任何特殊的IDE。我使用Scite进行所有Python编码(顺便说一句,在Windows Linux上),并且效果很好。

答案 1 :(得分:11)

  1. 您可以通过使用脚本语言自动执行大量任务来确定自己。

    请注意:其中一些“脚本”语言 - 如Perl - 实际上是非常强大的通用软件开发语言,恰好标记为“脚本”,因为它们最初的利基和/或亲子关系是脚本(因为很容易用它们做简单的脚本)。

    我个人使用Perl进行快速脚本自动化(2%使用率),Web开发(8%使用率)和企业财务软件开发(剩余90%)。

  2. 至于你能做什么的例子 - 答案是“几乎任何东西”,在很大程度上取决于你需要自动化的典型工作是什么。我使用Perl进行文件系统相关的东西(文件组织/清理/重命名)来文件内容操作(Perl的起源和最强大的套件之一仍然是文本处理)和各种报告(Perl中的“R”代表“报告”),以及对于各种数据运算来说,这在Excel中很难快速完成。

    请注意,Perl有一个非常广泛的库(称为模块),通过CPAN可用于除了烘烤面包或时间旅行之外几乎可用于做任何事情;以及严肃的软件开发的众多框架。

    为了反映Python的答案,Perl也可以用于Windows上的GUI东西 - 我不会在这里详细说明,因为如果您决定使用Perl,SO就该主题进行了非常全面的讨论。

  3. 作为说明上述内容的非常具体的例子,我为自己做的最后两个项目是索引系统,索引文件名,元数据和内容,并提供了一种搜索方式指数。第一个是本地代码搜索(穷人的谷歌代码搜索设备版本),第二个是我的mp3的文件收集管理系统(我的双狗敢于任何现有的软件,目的是允许我通过标签随机正则表达式搜索关键字)。两者都使用SQLite后端和Perl进行索引和前端。第二个具体的例子是计算StackOverflow上特定标签的最多票数的2线程:)

  4. 您可以从优秀的IDE或编程编辑器中获益,包括任何编程,脚本编写。在Windows上,您可以使用Notepad ++或UltraEdit或更多 - SO应该在某个地方有一个列表。任何具有“intellisense”(智能工作完成)的编辑都有优势。

答案 2 :(得分:3)

脚本语言非常强大。以下是我相信Lua提高效率的方法:

  • 中心数据是关联数组(可变哈希表)。 Lua的实现非常高效,可以很好地用作哈希,表,集和列表。

  • 字符串处理位于一个极好的最佳位置:几乎与正则表达式一样强大,而且更具可读性。模式转义字符%与字符串转义字符\不同。 Lua的“捕获模式”比POSIX正则表达式简单,并且 比Perl正则表达式更简单,并且它满足了我的字符串扫描需求的90%。一个极好的工程设计实例。

这两个功能涵盖了主要数据。除此之外,

  • 该表是唯一可变类型,使程序更易于推理。

  • Lua拥有一流的嵌套功能,因此如果您需要它,功能范例的所有功能都可用 - 但如果您不使用它,则不需要付费。

    < / LI>
  • Lua有一个内置的迭代构造,原生于该语言,适合迭代集合,文件系统,你可以命名它。比使用“迭代器方法”一些“迭代器对象”要好得多。迭代非常重要,我可以从一个专门用它的语言结构(通用的for循环)中受益匪浅。

  • 语言很简单,经过适度的学习,我理解所有

  • 有一个闪电般快速的互动实施。

  • 根据需要,我可以将任何现有的C库导入Lua。

  • 标准的Lua库满足了我的大部分需求,同时保持小到可以理解。如果我需要一个特殊目的库(XML,HTTP,解析),它通常已经可用且易于理解。

  • 再次根据需要,我可以使用自己的数据类型进行扩展。

我发现我使用Lua完成了我用sh,awk,sed,perl和那些人群完成的所有任务。我还发现90%的时间我可以比简单有用的C程序更快地编写简单,有用的Lua程序。 (另外10%是我主要进行系统调用的时候。)

虽然我已经记不清我熟悉的语言数量(编写的代码超过10,000行),但现在几乎所有的需求都只满足于3:

  • Lua几乎所有轻量级程序,包括你提到的快速和脏字符串/文件处理

  • C教学(因为我必须教C)

  • Haskell用于原型化(有时实现)复杂或大型系统,尤其是编译器

我还在一些相当实质的应用程序中使用了Lua和C的混合,例如nbibtexnoweb 3

答案 3 :(得分:2)

简短的回答是,您可以使用脚本语言做很多事情 - 但您仍然可以将其称为编程或软件开发。

但是,回答你的问题,我发现我工作中最有帮助的,提高我的工作效率,是很多shell / perl / python脚本。

我认为脚本最常见的用途是各种报告(广义上讲), 如果有一个日志文件并希望检索某些信息(或某种统计信息),脚本可以帮助您在很短的时间内实现这一点。

一些提示关键字:shell脚本,正则表达式,输出格式。

由于

答案 4 :(得分:2)

所以你可能已经得到了图片,你将使用脚本语言更快地完成某些任务(关于脚本这个词:我不再认为它是贬义的,恰恰相反) 。天啊,我有一些朋友(不小心Delphi程序员)仍然使用Delphi执行一些一次性任务,搜索文本文件等,花费数小时编写Delphi类和表单,一遍又一遍地编译,而不是几分钟写Python / Ruby / Perl one-liners。

但我认为更重要的是(给出正确的选择):你将学习新的编程概念。你将成为一名程序员。你会长大那个旧的“你得到了锤子,所以一切看起来像一个钉子”的观点。你将学习如何再次呼吸。

顺便说一句,当我说“给出正确的选择”时,我强烈建议选择功能强大的函数式编程概念的正确设计语言。所以我真的会跳过PHP并选择Python或Ruby。

答案 5 :(得分:1)

所以,我经常使用Python来为各种编程任务制作解决方案的原型(在实现之前使用其他编程语言中的所有花哨都可以获得算法),并且我一直在使用BASH shell脚本来实现自动执行各种任务(例如,在多个不同的输入集上运行程序,保存结果,管道连接到grep和其他实用程序等)。

说到乏味,我真的强烈推荐BASH。您可以通过安装Cygwin在Windows上获取它。例如,我经常发现自己在各种课程中做了类似的事情:

for i in {1..10} ; do
    ./process_data input-$i.txt | tee result-$i.transcript
done

你不需要一个好的编辑器...任何文本编辑器都可以。也就是说,如果你正在寻找一个优秀的Python编辑器,那么带有PyDev的Eclipse就相当不错了。就个人而言,我只是使用Xcode作为通用代码编辑器的所有内容......即使它没有真正为Python或BASH shell脚本带来任何东西......当然,你在Windows上没有Xcode。但是,您可以使用Notepad ++,Notepad或Wordpad。

答案 6 :(得分:1)

作为一个50/50的windows / linux用户,python特别有用,因为我写的几乎所有东西都是跨平台的,而且因为windows并没有真正有用的shell语言。使用pyqt,我可以在几个小时内创建一个非常令人印象深刻的GUI。我相当肯定,未来几年,python将接管世界。

答案 7 :(得分:1)

我是TextMate用户并积极开发扩展程序(“捆绑包”),供我自己在php,ruby和javascript中使用。

答案 8 :(得分:1)

我使用脚本语言进行大量的数据前/后处理。小或大。

几乎所有脚本语言都有超级/快速文件,文本,图形等处理。如果没有大量的锅炉板代码和编译步骤,非常容易。

正如有人提到的那样,你将展现自己的肌肉,开拓新的可能世界。

我从一种脚本语言跳到另一种脚本语言,有时会将它们混合起来,只是为了更快地得到我想要的东西。知道你可以做任何你能想到的事情,这让我无所畏惧。如果你不能那么总有stackoverflow和更多的语言(语言不可知的标签),你可以接受更快的(通常更好)你会得到一个。

答案 9 :(得分:0)

我使用每种脚本语言的标准库,使用记录良好的API快速完成工作。例如,以下是我在最流行的脚本语言中使用的工具:

  • PHP

    • XSLT - 生成XML报告
    • imagemagick - 图片优化
    • curl - 集成测试
    • 国际化 - 国际化
  • 的Python

    • turtle - nostalgia
    • plistlib - OSX配置
    • sqlite - 快速数据库原型设计
    • sched - 快速任务调度
    • difflib - diffing
    • shutil - 文件存档
  • Ruby

    • Rake - 自动备份和记录
    • expect - 自动化身份验证提示
    • abbrev - autocomplete
    • RSS - 创建供稿
    • fileutils - 比较文件
    • gdbm - 序列化程序状态
    • win32ole - MSXML / IE自动化
    • did_you_mean - 避免拼写错误
  • 的Perl

    • 环境 - 修复路径问题
    • 记忆 - 测试算法
    • TAP - 组织测试
    • Params :: Check - 验证API

<强>参考