怎么用Python扩展和延伸鹦鹉螺

  介绍

这篇文章主要介绍了怎么用Python扩展和延伸鹦鹉螺,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

<强>鹦鹉螺脚本

扩展鹦鹉螺的第一个方法是通过在/home中发现的名为.gnome2/Nautilus脚本的特定目录。当在脚本,菜单下的文件或者文件夹上点击鼠标右键时,该目录下所有可执行文件将会出现。还可以选择多个文件或者文件夹,并采用相同的右击方法,将文件清单传递给脚本。

当调用脚本时,鹦鹉螺支持多个包含当前目录以及所选文件等内容的环境变量。表1展示了这些环境变量。

<强>表1所示。鹦鹉螺环境变量

环境变量描述NAUTILUS_SCRIPT_SELECTED_FILE_PATHS所选文件的新行分割路径(仅针对本地)NAUTILUS_SCRIPT_SELECTED_URIS所选文件的新行分割URIsNAUTILUS_SCRIPT_CURRENT_URI当前位置NAUTILUS_SCRIPT_WINDOW_GEOMETRY当前窗口的位置和大小

在Python中,通过对os.environ。得到函数的一个调用来获取这些变量的值,具体如下:

 selected =, os.environ.get (& # 39; NAUTILUS_SCRIPT_SELECTED_FILE_PATHS & # 39; & # 39;) 

此调用返回一个字符串,其包含到达由换行符分隔的全部所选文件.Python利用下列代码,简化了将这一字符串返回到可迭代列表中的操作:

 targets =, selected.splitlines () 

此时,也许应该停下来探讨一下用户交互。当控制从鹦鹉螺,传送到脚本后,在该点上确实不存在对脚本的限制。根据脚本作用的不同,甚至不需要任何用户反馈,除了一些类型的完成或错误消息,这样通过一些简单的消息框就可处理好。由于在编写,鹦鹉螺时采用了gtk窗口工具包,所以尽管这不是必须的,但是采用相同的做法很合乎逻辑。您可以很方便地使用TkInter或者,wxPython。

鉴于本文的目的,您将采用,gtk。生成一个用于通信完成状态的简单消息框,仅需几行代码,出于方便阅读的目的,如果想创建简单的函数来生成消息,这个代码将最为合适。总共需4,要行代码:

 def 警报(味精):
  时间=dialog  gtk.MessageDialog ()
  dialog.set_markup(味精)
  dialog.run () 

<强>示例:创建简单脚本来返回所选文件的数量

第一个示例程序将多个程序段合并成一个简单脚本,来返回当前所选文件的数量。这一脚本可用于文件或者目录。可利用另一个Python,库函数,操作系统。走,递归地构建每个目录中文件的清单。总共有38行代码,如清单1所示,这就是这一小工具所需的全部内容,其中还包括了空行。

<强>清单1。用于Filecount脚本的代码Python

 # !/usr/bin/env  Python
  import  pygtk
  pygtk.require (& # 39; 2.0 & # 39;)
  import  gtk
  import 操作系统
  def 警报(味精):
  “““Show  a  dialog  with  a  simple 消息!”““
  时间=dialog  gtk.MessageDialog ()
  dialog.set_markup(味精)
  dialog.run ()
  def  main ():
  时间=selected  os.environ.get (& # 39; NAUTILUS_SCRIPT_SELECTED_URIS& # 39;,, & # 39; & # 39;)
  时间=curdir  os.environ.get (& # 39; NAUTILUS_SCRIPT_CURRENT_URI& # 39;,, os.curdir)
  if 选择:
  时间=targets  selected.splitlines ()
  其他:
  时间=targets  [curdir]
  时间=files  []
  时间=directories  []
  for  target 拷贝的目标:
  if  target.startswith(& # 39;文件:///& # 39;):
  时间=target 目标[7:]
  for 目录名,目录名,filenames 拷贝os.walk(目标):
  for  dirname 拷贝目录名:
  directories.append(目录名)
  for  filename 拷贝文件名:
  files.append(文件名)
  警报(& # 39;% s  directories 以及% s 文件# 39;,%
  (len(目录),len(文件)))
  if  __name__ ==,“__main__":
  main () 

图1展示了当在文件上右击鼠标或者选择一组文件时所看到的内容.Scripts菜单选项展示.gnome2/Nautilus脚本,中所有的可执行文件,并给出了打开文件夹的选项。选择一个文件来执行该脚本。

怎么用Python扩展和延伸鹦鹉螺”> </p> <p>图1所示。在鹦鹉螺中选择文件</p> <p>图2展示了Filecount。py脚本的运行结果。</p> <p> <img src=怎么用Python扩展和延伸鹦鹉螺