能够依据如下步骤去得以达成Windows 瑟维斯,几个常用Python处理职责

澳门新浦京8455com 18

澳门新浦京8455com 1

Windows Service

当Windows
启动的时候,还没有登录账号的时候,此时Windows中设置为auto状态的Service
将会在Session 0中运行。可以按照如下步骤去实现Windows Service:

  1. 如果还没有实现过Windows Service 程序的同学,可以参考这篇文章《Simple
    Windows Service in C++》去实现。
  2. 通过命令行创建Service, 主要注意start= auto设置Service为开机启动。

    sc create “SERVICE_NAME” binpath= “SERVICE_PROGRAM” displayname= “SERVICE_DESCRIPTION” start= auto

How it works…

sys模块中包含了一个argv[]的列表对象,该对象用于保存在命令行模式下执行Python脚本的输入参数。列表中的第一个元素是脚本名称。因此,在本案例中sys.argv[0]包含了ListFields.py文本。工作空间和要素类参数分别保存在sys.argv[1]sys.argv[2]中。这些输入参数赋值给变量在脚本中使用。

通过which命令找到firefox文件的具体位置,接下来的工作就是移花接木了。

4.点击确认

Windows Startup Script

按照如下步骤:

  1. 打开本地的组策略管理,运行命令gpedit
    2.
    然后依次打开Computer Configuration->Windows Settings->Scripts->
    Startup, 在Startup中配置需要开机启动的脚本或者程序。
    在机器中的配置,我们都尽可能的希望自动化,于是希望通过脚本来完成这个动作。可惜没有CMD
    命令可以直接使用这种方法添加启动程序,后来博主搜索了一些方法,有通过直接修改注册表的、也有通过vb脚本去实现的,但这些方法个人觉得还不够直接,简单。
    于是博主找到了接下来要说的方法,通过Windows定时任务管理器。
How it works…

案例中使用的ListFields.py脚本会列出Burglaries_2009.shp文件中的属性字段。工作空间路径和shapefile文件名称在脚本中都经过硬编码处理。输入python后输入脚本名称,在本案例中是ListFields.py,会触发python解释器来运行该脚本。在下一个案例中,你将学习如何将参数传递给脚本,这样就可以移除脚本中的硬编码来让脚本更加灵活。

但突然发现filter报错,说找到不filter中移动邮件所到的目标文件夹,分析应该是thunderbird在msgFilterRules.dat中写入了绝对路径而且是以Windows路径格式写的导致的这个问题。

通常情况下,进入Windows界面之前都有一个登录过程,如何在登录前让系统执行脚本呢?下面介绍一种方法。

Windows Schedule Task

Windows定时任务管理器,提供了强大的功能:可以定时的执行任务,除了按照时间去触发定时任务,其还提供了开机启动触发程序运行的功能,你可以通过图形界面的方式配置,也可以通过命令方式:

  • 依次打开Control Panel->Administrative Tools->Task Scheduler,然后再里面新建自己的任务。主要注意以下两点:
    • 任务运行的账号选成”System”
    • 触发器中,选择At Startup触发器
  • 使用如下命令行:

schtasks /create /TN "TASK_NAME" /RU SYSTEM /SC ONSTART /TR "TASK_PROGRAM"
How to do it…

按照以下步骤来创建一个使用sys.argv[]来接受命令行中输入的参数的脚本:
1.在IDLE中打开C:ArcpyBookAppendix1ListFields.py文件。
2.导入sys模块:

import arcpy,sys

3.创建一个变量来保存工作空间参数:

wkspace = sys.argv[1]

4.创建一个变量来保存要素类参数:

fc = sys.argv[2]

5.更新设置工作空间路径以及调用ListFields()函数的相关代码:

arcpy.env.workspace = wkspace
fields = arcpy.ListFields(fc)

完整代码如下:

imprt arcpy,sys
wkspace = sys.argv[1]
fc = sys.argv[2]
try:
    arcpy.env.workspace = wkspace
    fields = arcpy.ListFields(fc)
    for fld in fields:
        print fld.name
except:
    print arcpy.GetMessages()

6.保存脚本。
7.打开命令提示符窗口,更改当前目录至C:ArcpyBookAppendix1
8.在命令提示符窗口中,输入以下命令后按下Enter键:

python ListFields.py C:ArcpyBookdata Burglaries_2009.shp

9.你会再一次看到Burglaries.shp文件中属性字段的细节信息。不同之处在于你的脚本不再需要硬编码工作空间路径和要素类名称。脚本现在可以列出任何要素类的属性字段。

一般情况KDE或GNOME都会默认安装firefox,因此桌面上或程序菜单中可能已经有firefox的快捷方式了。
澳门新浦京8455com,那么我们就介绍一下如何更改现有的快捷方式。

3.在右侧双击Stratup,出现如图弹窗,可在此添加cmd或者PowerShell脚本。

Windows中实现不依赖账户登录的开机启动程序,不依赖账

在Windows中很多的任务,我们希望能够在Windows
启动之后自动运行。举个例子,公司有个订饭系统,基本每天都需要登录去订饭,于是写一个脚本实现自动订饭。可是你的电脑每天要关机,当然不希望开机后还需要手动运行这个订饭脚本了。于是此时我们要将其这种脚本实现为开机自动启动脚本。
但要注意本文要讲的开机启动的程序,是在用户还没有登录的情况下实现启动的。换句话说,本文描述的开机启动的程序运行在Session
0中
主要介绍了3中方法, 大家可以选择合适的方法去实现。

How to do it…

按照以下步骤来学习如何通过Windows命令提示符来执行脚本:
1.Windows中点击开始|所有程序|附件|命令提示符
(Start|All Programs|Accessories|Command
Prompt)
,弹出一个类似于下图的窗口:

澳门新浦京8455com 2

窗口中会显示当前目录。你的目录路径会有些差异。我们来更改当前目录。
2.输入cd C:ArcpyBookAppendix1.
3.输入dir来查看该目录下的文件和子文件夹。你会看到只有一个叫做ListFields.py的Python文件。

澳门新浦京8455com 3

4.你需要确认Python解释器能够执行。点击开始|所有程序|附件|系统工具|控制面板(Start|All
Programs|Accessories|System Tools|Control Panel)

澳门新浦京8455com 4

5.点击系统与安全(System and Security)
6.点击系统(System)
7.点击高级系统设置(Advanced system settings)
8.在系统属性(System
Properties)
对话框中,如下图所示选择高级(Advanced)选项卡,点击环境变量(Enviroment
Variables)
按钮:

澳门新浦京8455com 5

9.按照下图所示找到Path系统变量,然后点击编辑(Edit)按钮。

澳门新浦京8455com 6

10.查看C:Python27ArcGIS10.1目录字符串(根据个人情况修改路径)。如果没有找到该字符串,添加到最后面。确保该路径前添加分号分隔符。现在当你在命令提示符中输入python后,系统就会查找Path系统变量中的每一个目录中查找一个可执行文件python.exe。

澳门新浦京8455com 7

11.点击确认(OK)按钮关闭编辑系统变量(Edit System
Variable)
对话框。
12.点击确认(OK)按钮关闭环境变量(Enviroment
Variables)
对话框。
13.点击确认(OK)按钮关闭系统属性(System Properties)对话框。
14.返回命令行提示符窗口。
15.输入python ListFields.py。系统就会运行ListFields.py脚本。等待一小会后,你会看到如下结果:

澳门新浦京8455com 8

1、在桌面上点击鼠标右键,在弹出的菜单中选择“Create New -> Link to
Appliacation…”。
2、在页签“Greneral”中的文本输入框内设置快捷方式的名字,如“ThunderBird”。
3、点击输入框左侧的齿轮状按钮(图标),弹出图标设置窗口,选择单选按钮“other
icons”,点击由disable变为enable状态的按钮“Browse…”,选择
“/usr/local/thunderbird2/icons/mozicon50.xpm”图标文件,点击按钮“open”返回前一窗口。
4、在页签“Application”中的“Command”文本输入框内,填写thunderbird执行脚本的全路径名,如
“/usr/local/thunderbird2/thunderbird”。(注意,不需要引号,如果通过文件浏览窗口选择程序,会自动添加上半角双引号)
5、点击按钮“OK”完成设置并关闭窗口。

澳门新浦京8455com 9

How to do it…

按照以下步骤在Windows任务计划程序中设置批处理文件的任务计划。
1.点击开始|所有程序|附件|系统工具|控制面板|管理工具
(Start|All Programs|Accessories|System Tools|Control
Panel|Administrative Tools)
选择任务计划(Task
Scheduler)
打开任务计划程序。任务计划程序界面如下图所示:

澳门新浦京8455com 10

2.选择操作(Action)菜单项后选择创建基本任务(Create Basic
Task)
弹出创建基本任务向导(Create Basic Task Wizard)对话框。
3.设置任务名称。在本案例中我们将任务名称设置为List Fields from a Feature Class。点击下一步(Next)

澳门新浦京8455com 11

4.选择任务执行时的触发器。通常选择基于时间触发器,不过也可以设置为其他类型的触发器,比如用户登录时或计算机启动时等。在本案例中,我们选择每天(Daily)。点击下一步(Next)

澳门新浦京8455com 12

5.选择一个开始的日期时间以及执行周期。如下图所示,我选择开始时间为2012年12月31日上午1点,每隔1天执行一次。因此每天凌晨1点都会执行该任务。点击下一步(Next)

澳门新浦京8455com 13

6.在操作中选择启动程序(Start a program)

澳门新浦京8455com 14

7.找到你的批处理文件并添加参数。这里需要说明一下,大家可以选择直接打开前一个案例创建的bat批处理文件后直接点击下一步(Next),也可以如下图所示,导入创建的python脚本文件,在添加参数(Add
argument)
中输入C:ArcpyBookdata Burglaries_2009.shp后点击下一步(Next)

澳门新浦京8455com 15

8.点击完成(Finish)添加任务任务计划中。

澳门新浦京8455com 16

9.任务现在显示在活动任务列表中:

澳门新浦京8455com 17

于是重新解压邮件目录,启动thunderbird后不立即收邮件,先把所有filter中需要移动邮件位置的目标文件夹重新指定一遍,OK,问题解决。 

2.依次点击Computer Configuration -> Windows Settings ->
Scripts(Startup/Shutdown)

引言

Python脚本既可以在ArcGIS运行环境外以独立脚本的形式来运行,也可以在ArcGIS运行环境内以脚本工具的形式来运行。两种方式都有各自的优缺点。到目前为止,所有的脚本都是在ArcGIS环境中以脚本工具形式或在Python开发环境IDLE以及ArcGIS内的Python窗口来执行。不过,Python脚本同样可以通过Windows操作系统命令行方式来执行。这种执行Python脚本的方式对于制定脚本执行任务计划来说是非常有用的。制定脚本执行任务计划有几个方面的原因,一是许多地理处理脚本的运行需要耗费很长时间通常都是安排在非工作时间来执行。另外,有一些脚本需要定时定期(每天,每周甚至每月)执行,有时候也是出于效率考虑。在本章中,你将学习如何通过命令行来执行Python脚本,将脚本添加到批处理文件中以及在指定时间来执行脚本。需要注意一点,由于代码中需要调用arcpy模块,所有通过的命令行来执行的脚本仍然需要获取ArcGIS桌面软件的许可。

1、设置正确的权限和owner,保证程序是可执行的,并且可以被当前用户执行。
2、确认link正确无误。
3、直接运行实际位置的执行程序,看是否可以正常运行。
4、注销重新登录KDE,再运行试试。

1.打开组策略,在Run(运行)中输入GREDIT.MSC,点击确认。

第十二章 异常和错误处理
||| 附录B
五个常用Python处理任务

Thunderbird
的详细介绍
:请点这里
Thunderbird
的下载地址
:请点这里

澳门新浦京8455com 18


shell> which firefox
/usr/bin/firefox

重启,在下次登录Windows界面前,系统会自动执行所添加的脚本。

通过命令行执行Python脚本

到目前为止,本书中所有的Python脚本要么在ArcGIS环境中以脚本工具形式执行,要么在Python开发环境中执行。Windows命令行为你提供了另外一种运行Python脚本的方式。命令提示窗口主要以批处理文件或任务计划的方式来执行脚本。

我一直使用firefox和thunderbird作为WWW浏览器和电子邮件客户端,在开始使用openSUSE之后,肯定是希望把这两个软件升级到最新版本的。虽然不一定非要最新版本,但我更希望多了解一些在Linux软件到底是怎么安装和配置的。突然间好像回到了1999年自己刚买回新PC学习
Win98使用的那段日子。

相关文章

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图