【问题标题】:Bash alias to Python script -- is it possible?Python 脚本的 Bash 别名——有可能吗?
【发布时间】:2011-01-17 19:05:28
【问题描述】:

我希望在 Python 脚本中“分类”的特定别名恰好是使用 cUrl -o(输出到文件)选项的别名。我想我可以很容易地把它变成一个 BASH 函数,但是有人建议我可以通过接受我的想法并将它们制作成 Python 脚本来避免 BASH 的不同版本和“风格”的怪癖和陷阱。

与这个想法一致的是另一个想法,我必须使旧版 Mac OS(官方称为“OS 9”或“Classic”)的一个功能与下载平台无关:将 URL 写入文件的某些部分可见从一个文件导航器 {Konqueror、Dolphin、Nautilus、Finder 或 Explorer}。我知道使用其他一些命令行工具(exiv2、wrjpgcom 等),只有很少的文件类型支持这种事情。这对我来说非常好,因为我只使用这个别名来下载单页图像文件,比如 JPEG。

我认为我不妨充分利用 Python 的强大功能,让脚本将作为下载源 URL 的字符串(由用户输入并首先由 cUrl 使用)传递给 exiv2 之类的东西,它可以写它添加到注释块、EXIF 用户注释块和(作为第一个也是最差的示例)Windows XP 的文件描述字段。从小处着手有时是一种很好的开始方式。

希望有人有意见或建议。

BZT

【问题讨论】:

    标签: python bash curl scripting multiplatform


    【解决方案1】:

    Bash 手册中的relevant section 指出:

    别名允许字符串 使用时替换单词 作为一个简单命令的第一个词。

    所以,应该没有什么可以阻止你这样做,例如

    $ alias geturl="python /some/cool/script.py"
    

    然后你可以像使用任何其他 shell 命令一样使用它:

    $ geturl http://example.com/excitingstuff.jpg
    

    这只会调用你的 Python 程序。

    【讨论】:

    • 您也可以在脚本中使用#!/usr/bin/env python 之类的shebang 并执行alias geturl="/some/cool/script.py"
    • 对。非常感谢 unwind 和 Dennis。我一直在研究可以将评论、EXIF 和 IPTC 数据读写到 JPEG 文件的 Python 模块,现在我想我会寻求帮助来编写脚本来“调用”cUrl 或自行下载行作为它的 -o(输出到文件;用户提供文件名)选项。当然,这部分的建议也将不胜感激。 BZT
    【解决方案2】:

    我认为 Pycurl 可能是答案。 Ahh Daniel Sternberg 和他无辜的假设,即每个人都知道他在做什么。我在列表中询问 pycurl 是否有“curl -o”类似物,然后问“如果有:如何在 Python 脚本中对其/它们进行编码?”他的回复如下:

    "curl.setopt(pycurl.WRITEDATA, fp)

    可能结合:

    curl.setopt(pycurl.WRITEFUNCITON, 回调) "

    ...连同指向retriever.py 的两个修订版的Sourceforge 链接。我几乎记不起easy_install把我的那个放在哪里了;我应该如何比较它们?

    很明显,这位先生在西半球从未从事过服务台或电话技术支持工作,您必须假设“客户”昨天刚刚学会如何使用他们的梳子,并准备好引导他们完成所有事情。单行(或带有深奥链接作为追逐者的三行)不适合我。

    BZT

    【讨论】:

    • 好的,现在这已经不在我的系统中了(也没有“找不到命令”错误,哈哈)......我在 ActiveState.com 上找到了一个不错的 wget 模拟器脚本,它似乎可以工作,但在 cUrl术语它模仿“-O”选项,与 wget 不同,它意味着“使用与服务器上相同的文件名”。我将如何更改它以模仿其他选项? (我想在发布代码之前征求对此评论的答案。)BZT
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-26
    • 2012-06-08
    • 2012-10-13
    • 2020-10-18
    • 1970-01-01
    • 2011-10-14
    相关资源
    最近更新 更多