跳转到主要内容

Python 的 Shell 脚本库

项目描述

pyscripting 是一个 Python 模块,提供各种实用工具,使使用 Python 进行 Shell 脚本编写更加容易。

入门指南

  1. 获取 scripting.py

    pip install pyscripting
  2. 创建您的 Python Shell 脚本 myscript.py

    #!/usr/bin/env python
    
    from scripting import sh
    
    sh.ls('-l')
  3. 使用您的脚本

    chmod +x myscript.py
    ./myscript.py

调用外部命令

有三种方式可以调用外部命令。

如果可能,将使用 Python 替换外部命令。只有在直接调用时才不会使用替换。

有关所有替换命令,请参阅 替换命令

直接调用

返回退出代码。

sh('ls', '-l')

间接调用

返回退出代码。

sh.ls('-l')

调用并返回输出

返回清理后的 stdout (stderr 不会被包含在内)。

使用此方法,命令的输出将不会打印到 stdout。在返回输出之前,将删除前导空格。

不要为此方法使用大输出。

output = sh.get('ls', '-l')
print('Output was: %s' % output)

参数处理

您可以通过 argv 属性访问传递给脚本的参数

sh.argv[0] - called script name
sh.argv[1] - first argument

替换命令

为了避免开销和简化原因,一些外部命令已被 Python 的内部函数替换,这些函数比调用外部命令工作得更快。

basename

与外部 basename 相同。

返回字符串。

exit

与外部 exit 相同。

find

类似于外部 find 命令。

返回所有找到的文件的迭代器。

示例用法

for f in sh.find(type='f', exclude=['*.pyc']):
    print(f)
mkdir

等同于外部的 mkdir

mkdirs

等同于外部的 mkdir -p

test

类似于外部的 test

返回布尔值。

示例用法

if sh.test('-d', '/tmp'):
    print('/tmp is directory.')

Makefile 功能

示例 (myscript.py)

#!/usr/bin/env python

from scripting import sh, Makefile

make = Makefile(sh)


@make('/tmp/myfile.txt')
def myrule(target):
    sh.touch(target)

@make()
def main(target):
    myrule()

make.run(main)

最后一行 make.run(main) 检查 sys.argv 并执行指定的规则或默认规则(如果没有指定特定规则)。只有当目标文件 /tmp/myfile.txt 不存在时,才会执行 myrule

./myscript.py

现在调用特定规则

./myscript.py myrule

项目详情


发布历史 发布通知 | RSS 源

下载文件

下载适用于您的平台的文件。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。

源分发

pyscripting-0.1.tar.gz (3.6 kB 查看哈希值)

上传时间

构建分发

pyscripting-0.1.linux-x86_64.exe (68.1 kB 查看哈希值)

上传时间

由以下提供支持