码迷,mamicode.com
首页 > 系统相关 > 详细

Mac OS X 快速添加新文件

时间:2019-12-15 23:55:17      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:状态   sdi   失败   存储   note   取出   err   image   mat   

本文为 automator (中文名为 自动操作)的练习之作,尚有许多不足。

如果你想在 OS X 系统中快速添加新文件可直接参考此文

简介

本文使用 automator 创建了一个应用程序 autocreatefile 。运行这个应用程序时,它会尝试获取你所选中的文件或者文件夹,然后询问你希望生成的新的文件名,最后在所选文件同文件夹下,或者所选文件夹下创建一个你设定的文件名的文件。如果该文件已经存在,那么什么都不会发生。

操作

下面是具体的操作:

打开 automator 软件,中文名为 自动操作 。

依次选择 文件 - 新建 - 应用程序 。然后从左边的资源库里依次往右边添加如下图所示的六个操作。
技术图片

第一个操作是 获取所选的访达项目 。这个操作的作用是获取到你选取的文件或者文件夹的路径。如果什么都没选,那么后面的步骤就无法进行下去了。

第二个操作是 设定变量的值 。这个操作的作用是将上一个操作获得的路径赋值给 filename。这是为了先将filename保存起来,不然一会儿后面要用的时候找不到。
技术图片

第三个操作是一段 AppleScript 脚本。这段脚本的作用是使得当前运行的程序的窗口是活动窗口,且获得焦点。简而言之就是说程序的窗口显示在所有窗口的最上方,并且之后的输入框会在选中状态。
技术图片

第四个操作是请求文本,这个操作的作用是引导用户输入文件名。这里勾了忽略此操作的输入,是为了避免前面传递过来的路径把 请求文本的默认文本替换掉。
技术图片

第五个操作是将刚才保存起来的filename变量重新获取出来。它会和前面请求文本获得的文件名一起传递给下面的操作。
技术图片

最后一个操作是一段 python 脚本。Shell 类型设置为 python ,传递输入设置为 作为自变量。这样设置后,前面的两个参数会以列表的形式存储到python 的sys.argv 中,如果是 至 stdin,那么需要在python中通过标准输入输出的读取进行读入。
技术图片

具体代码如下

import os,sys
print len(sys.argv)
if len(sys.argv) > 2: # 至少得有三个参数传进来
    if os.path.isdir(sys.argv[2]): # 如果传的是文件夹路径,那么直接就是这个路径
        path = sys.argv[2]
    else: # 如果传的是文件路径,那么需要获取到其所在的文件夹路径
        path = os.path.dirname(sys.argv[2])
    file = open(os.path.join(path,sys.argv[1] or "new.txt"),"a+") # a+ 如果已经有同名文件,不会改变原文件内容,如果没有的话,会有提示
    print "succ"
    file.close()

添加到访达快捷栏

前面提到的文章里,介绍了添加应用程序到访达快捷栏的方法

技术图片

局限

由于我的这个应用程序依赖于选择文件或者文件夹,所以在什么都没选的情况下,可能会创建失败。

参见

Mac OS X 快速添加新文件

标签:状态   sdi   失败   存储   note   取出   err   image   mat   

原文地址:https://www.cnblogs.com/tangyikejun/p/12046569.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!