当前位置:文档之家› Arcgis 10中的PYTHON

Arcgis 10中的PYTHON

Arcgis 10中的PYTHON
Arcgis 10中的PYTHON

By diligentpig
$UF*,6
Geoprocessing GIS ×' Tools & '
3\WKRQ
GeoVisualization ArcGIS 5' > GeoData
Geoprocessing × 9.0 ,'
Modeling Python Python / üPython Python /
"ü 3
/
5'
/"
Python ü '
ArcGIS 10 / ü
ArcPy

By diligentpig
Python ArcGIS arcgisscripting module9.3 ,'
9.2 ,' Python List
ArcGIS 10 / ArcPy site-package Python > %# ArcPy 800+ / , ArcPy
arcgisscripting module > % > '/
/"
%#=#%# Geoprocessing Tools ! %
Python IDE
cursorsgeometry / classes NumPy
/NumPyArrayToRasterRasterToNumPyArray
DUFJLVVFULSWLQJ DUFS\
# 9.3 import arcgisscripting gp = arcgisscripting.create(9.3) array1 = gp.createobject("array") # 10.0 import arcpy array2 = arcpy.Array()
Python Window

By diligentpig
ArcGIS 10 Python / ArcPy C >
Python Window ' ,'
Python
command line window+ Python Window '
Command %'" & Python
command line &
Python Window ArcPy / ! 6 ü Python
tools
environments

3 Python Window !
IDE ü
PythonWin
Interactive Window > ! " >
Python Geoprocessing tools Python
& Python Window & Python &
Python Window
Python IDE

By diligentpig
E '
&
/ ArcPy
>
Python Window
à
/ *HRSURFHVVLQJ WRROV
>>> import arcpy >>> arcpy.env.workspace = r'C:\Users\esrichina\Desktop\demo_arcgis10python\data\US A_Data.gdb' >>> arcpy.Buffer_analysis("Cities","Cities_buffer","5 Kilometer") >>> Python Window >>> / 7LS$UF3\ 5 ! 3 E / Buffer

By diligentpig
7LS
>
Python Window &
ArcGIS 10
r'C:\Users\esrichina\Desktop\demo_arcgis10python\data \USA_Data.gdb' / 7LS % " Catalog FeatureClass Python Window
fcs & Python List & u unicode
C
$XWRPDWLRQ

By diligentpig
>>> import arcpy >>> arcpy.env.workspace = r'C:\Users\esrichina\Desktop\demo_arcgis10python\data\US A_Data.gdb' >>> for feature in arcpy.SearchCursor("States","STATE_NAME = 'California'"): ... arcpy.Clip_analysis("States",feature.Shape,"California") ... >>> ' Feature+ California 7LS / SearchCursor " ArcToolbox Clip % 6& % × States States Clip California × /
/ Python 5'"
Clip
>>> fcs = arcpy.ListFeatureClasses() >>> fcs.remove("California") >>> for fc in fcs: ... arcpy.Clip_analysis(fc,"California",fc+"_clip") ... >>> ' for FeatureClass / " / California ü California D
7LS 3\WKRQ :LQGRZ & Python List fcs
/ 3\WKRQ
remove % /
7LS%DFNJURXQG *HRSURFHVVLQJ

By diligentpig
ArcGIS 10 Geoprocessing D &/ ArcGIS
Background Geoprocessing ArcGIS 3 + ' /
CPU

Geoprocessing
' '
ArcMapBackground Geoprocessing
>
for '
+' /
ArcPy
D 5' ' ü arcpy.mapping Mapping module /'
Modules
3 /' Python
%ArcPy
"
.mxd PDF
.lyr
arcpy.sa Spatial Analyst module /' ArcPy.Raster %
/ ArcGIS 10
arcpy.gaGeostatistical Analyst module/' modules E× '"'
à
Mapping module
/ 0DSSLQJ 0RGXOH
ü
%
>>> import arcpy, arcpy.mapping >>> mxd = arcpy.mapping.MapDocument("current") >>> df = arcpy.mapping.ListDataFrames(mxd)[0] >>> updatelyr = arcpy.mapping.ListLayers(mxd)[0] >>> sourcelyr = https://www.doczj.com/doc/617598226.html,yer(r'C:\heli.lyr') >>> arcpy.mapping.UpdateLayer(df,updatelyr,sourcelyr,True)

By diligentpig
>>> / mapping module / / current C List / / MapDocument ArcMap mxd "
/ListDataFrames % / mxd
mxd DataFrame & lyr
DataFrame "
DataFrame sourcelyr %True
updatelyr & 1 %
3
UpdateLayer %
%
&" % &
' "
D
>>> arcpy.RefreshContents() >>> arcpy.RefreshGraphics() >>> "

By diligentpig
7LS
ArcMap TOC
arcpy.RefreshContents() / ' arcpy.RefreshGraphics()/' Tip8
MapView " LayoutView
/ MapDocument
save/saveACopy
'
mxd "
%

"

By diligentpig
' C:\MXDs "
% " 6DYH
mxd PDF /RDG

Python mxd
7LS3\WKRQ :LQGRZ save .py .py +
Python Window "" /
>
CLoad
.py
Python Window
ArcGIS 10 arcgisscripting Python Module
Python 5' %
Geoprocessor
ArcPy
Python # /'
ü 5' >
/ % "
Python 5'
ArcGIS 10 '
Python

ArcGIS中Python脚本学习

[初学入门]ArcGIS中Python脚本的使用 By:飞天小猪 目录 写在前面的话...................................................................................................... 错误!未定义书签。 前言..................................................................................................................... 错误!未定义书签。 一、PYTHON语言基础 ....................................................................................... 错误!未定义书签。 1数学运算符........................................................................................................ 错误!未定义书签。2字符串操作........................................................................................................ 错误!未定义书签。3模块的使用(M ODULES) .................................................................................. 错误!未定义书签。4使用DEF构建函数 ............................................................................................. 错误!未定义书签。5流程控制结构:I F,W HILE,F OR....................................................................... 错误!未定义书签。6简单输入和输出................................................................................................ 错误!未定义书签。 二、ARCGIS&PYTHON ......................................................................................... 错误!未定义书签。 1如何创建地理处理对象(GEOPROCESSOR OBJECT)............................................. 错误!未定义书签。2获取地理处理帮助............................................................................................ 错误!未定义书签。 2.1举例:如何使用Geoprocessor Programming Model中的Lists ............... 错误!未定义书签。3使用地理处理工具——T OOLBOXES和A LIASES.................................................... 错误!未定义书签。4在建模中使用脚本(S CRIPTS IN M ODEL B UILDER) ............................................... 错误!未定义书签。5在P YTHON W IN里调试地理处理脚本 ................................................................ 错误!未定义书签。 5.1 调试选择和消息........................................................................................ 错误!未定义书签。 5.2PythonWin的调试工具............................................................................... 错误!未定义书签。 5.3地理处理工具举例..................................................................................... 错误!未定义书签。6使用描述(D ESCRIBE)和存在(E XISTS)获取数据信息 .................................. 错误!未定义书签。 6.1描述............................................................................................................. 错误!未定义书签。 6.2存在(Exists)............................................................................................ 错误!未定义书签。 6.3在循环中使用描述和存在......................................................................... 错误!未定义书签。7在P YTHON脚本中使用地图代数(M AP A LGEBRA) ........................................... 错误!未定义书签。8数据管理和指针(D ATA M ANAGEMENT AND C URSORS)........................................ 错误!未定义书签。 8.1数据管理(Data Management) .............................................................. 错误!未定义书签。 8.2指针(Cursors)......................................................................................... 错误!未定义书签。 附录1:地理处理脚本中输入&输出方法指南 .................................................. 错误!未定义书签。附录2:其他....................................................................................................... 错误!未定义书签。

用python进行数据分析

用python进行数据分析 一、样本集 本样本集来源于某高中某班78位同学的一次月考的语文成绩。因为每位同学的成绩都是独立的随机变量,遂可以保证得到的观测值也是独立且随机的 样本如下: grades=[131,131,127,123,126,129,116,114,115,116,123,122,118, 121,126,121,126,121,111,119,124,124,121,116,114,116, 116,118,112,109,114,116,116,118,112,109,114,110,114, 110,113,117,113,121,105,127,110,105,111,112,104,103, 130,102,118,101,112,109,107,94,107,106,105,101,85,95, 97,99,83,87,82,79,99,90,78,86,75,66]; 二、数据分析 1.中心位置(均值、中位数、众数) 数据的中心位置是我们最容易想到的数据特征。借由中心位置,我们可以知道数据的一个平均情况,如果要对新数据进行预测,那么平均情况是非常直观地选择。数据的中心位置可分为均值(Mean),中位数(Median),众数(Mode)。其中均值和中位数用于定量的数据,众数用于定性的数据。 均值:利用python编写求平均值的函数很容易得到本次样本的平均值 得到本次样本均值为109.9 中位数:113 众数:116 2.频数分析 2.1频数分布直方图 柱状图是以柱的高度来指代某种类型的频数,使用Matplotlib对成绩这一定性变量绘制柱状图的代码如下:

实验三 ARCGIS PYTHON脚本编程

实验三ArcGIS Python脚本编程 姓名:班级:学号: 实验目的 1、熟练掌握ArcGIS Python脚本编程,熟悉如何根据空间数据某个属性值选择数 据点,并用空间统计算法进行处理,保存并进行可视化; 2、熟悉空间核密度估计方法(Kernel Density Estimate) 数据准备 1.解压Experiment3.zip文件,打开ArcMap,将数据students_wgs84.shp添加到一个新地空地图文件中,如下图所示 数据为NUIM在校生学籍注册地址,坐标系为WGS84,即所使用地为经纬度,打开属性表:

主要属性名称含义如下: ●County:学生所在郡/县,如DUBLIN为爱尔兰首都都柏林; ●ED:Electrol District,爱尔兰最小地行政单元,直译为“选举区”,隶属于 County; ●ED_ID:ED地区分编号; ●INITIAL_AD:入学前家庭地址 ●TYPE:此处均为STUDENT ●COUNTY_ID:郡县编号 第一部分 在Sublime中新建task_Part1.py,并保存到与数据相同地文件夹下,输入以下代码:

这个代码就是将来自于DUBLIN、MEATH、LOUTH三个郡(County)的学生取出来,如用 counties=["DUBLIN","MEATH","LOUTH"] 定义的循环体。然后将取出的这些记录存储在一个临时地文件temp_lyr中:result=arcpy.MakeFeatureLayer_management(input_fc,temp_layer,"\"COUNTY\" ='"+unit+"'") 最后将这些抽取地点地坐标值分别按照所属地郡存储至“data_DUBLIN.csv”、“data_LOUTH.csv”、“data_MEATH.csv”三个CSV文件中,可以在当前文件夹下的子文件夹csvdata去查看这些文件地内容: Longitude,Latitude -6.68536404605,53.6525262979 -6.66472854007,53.6483054369 -6.24173854864,53.6820175854 ... 第一部分任务 1)编辑上面地代码,要求通过“ED”的值,选取来自于LEIXLIP、CELBRIDGE、KILCOCK三个区域的学生,并将学生地坐标值分别存储为名称为data_LEIXLIP、data_CELBRIDGE、data_KILCOCK的CSV文件,存储到csvdata子文件夹下; 2)任选上面一个CSV坐标文件,写一个python脚本,创建一个KML文件,要求将坐标文件中的每个坐标都存储为一个个地标,KML文件中地单个地标格式为: Simple placemark

用Python实现数据库编程

破釜沉舟: 为网站站长.设计师.编程开发者. 提供资源!https://www.doczj.com/doc/617598226.html, 用Python实现数据库编程 文章类别:Python 发表日期:2004-11-11 来源: CSDN 作者: wfh_178 <用PYTHON进行数据库编程> 老巫 2003.09.10 19 September, 2003 用PYTHON语言进行数据库编程, 至少有六种方法可供采用. 我在实际项目中采用,不但功能强大,而且方便快捷.以下是我在工作和学习中经验总结. 方法一:使用DAO (Data Access Objects) 这个第一种方法可能会比较过时啦.不过还是非常有用的. 假设你已经安装好了PYTHONWIN,现在开始跟我上路吧…… 找到工具栏上ToolsàCOM MakePy utilities,你会看到弹出一个Select Library的对话框, 在列表中选择'Microsoft DAO 3.6 Object Library'(或者是你所有的版本). 现在实现对数据的访问: #实例化数据库引擎 import win32com.client engine = win32com.client.Dispatch("DAO.DBEngine.35") #实例化数据库对象,建立对数据库的连接 db = engine.OpenDatabase(r"c:\temp\mydb.mdb") 现在你有了数据库引擎的连接,也有了数据库对象的实例.现在就可以打开一个recordset了. 假设在数据库中已经有一个表叫做 'customers'. 为了打开这个表,对其中数据进行处理,我们使用下面的语法: rs = db.OpenRecordset("customers") #可以采用SQL语言对数据集进行操纵 rs = db.OpenRecordset("select * from customers where state = 'OH'") 你也可以采用DAO的execute方法. 比如这样: db.Execute("delete * from customers where balancetype = 'overdue' and name = 'bill'") #注意,删除的数据不能复原了J

用python实现基本数据结构栈与队列

7 用 Python 实现基本数据结构——栈与队列 最近学习《算法导论》 ,看了栈与队列,觉得用 C 实现 没意思 (以前实现过,不过不能通用 ),遂用最近在研究的 Python 实现这两个基本的数据结构! 在一个 basicds 模块里用实现了两个类: Stack 和 Queue 及 其各自所支持的操作,写得比较笨: -) 其实完全可以写个 基类 List ,然后从 List 中派生出类 Stack 和 Queue ,这样做 可以避免一些重复代码,因为两个类有很多类似的方法,比 如 isempty, length 等等。(当然这些改进还是等待下一版再 做吧,: -)以下是模块 basicds 模块源码: basicds.py Python 语言 : 高亮代码由发芽网提供 01 class Stack(object) : 02 def __init__(self) : 03 self.stack = [] 04 05 def push(self, item) : 06 self.stack.append(it em) 08 def pop(self) :

30 09 if self.stack != [] : 10 return self.stack.pop(-1) 11 else : 12 return None 13 14 def top(self) : 15 if self.stack != [] : 16 return self.stack[-1] 17 else : 18 return None 19 20 def length(self) : 21 return len(self.stack) 22 23 def isempty(self) : 24 return self.stack == [] 25 26 27 class Queue(object) : 28 def __init__(self) : 29 self.queue = []

在ArcGIS下基于Python的矢量数据处理方法

测绘技术装备 第18卷 2016年第4期 技术交流 63 在ArcGIS 下基于Python 的矢量数据处理方法 林璐 王爽 李海泉 侯兴泽 马鹏刚 (国家测绘地理信息局第二地形测量队 陕西西安 710054) 摘 要:在ArcGIS 中地理处理可以通过Python 脚本语言来具体实现。通过Python 串联Arcgis 的地理处理工具,实现工作流自动化完成,同时,实践批处理过程,解放人工的机械重复工作,提高效率,进而保证数据质量。现以地形图中示坡线的正确、严谨表达为实践案例,介绍了在ArcGIS 下利用Python 处理矢量数据,为矢量数据处理的高效、自动化提供解决方法。 关键词:Python ARCGIS 地理处理 示坡线 1 引言 地理处理是GIS 用户应用的重要组成部分,ArcGIS 的ArcToolbox 窗口为GIS 用户提供了数百个地理处理。对于数据处理人员在使用ArcGIS 地理处理工具时,就会遇到这样的难题,如何将几个简单的地理处理工具串联起来,自动化地完成一个简单工作流,使得人工操作转换为自动化的程序批处理 过程[1] 。 Python 是一种不受局限、跨平台的开源编程语言,它功能强大且简单易学。同时,它可伸缩程度高,适于大型项目或小型的一次性程序(称为脚本), 并且可嵌入(使ArcGIS 可脚本化)。目前,Python 已延伸到ArcGIS 中,成为了一种用于进行数据分析、数据转换、数据管理和地图自动化的语言。运用 Python 语言可以实现对地理数据的批处理,从而有 助于提高工作效率[2] 。 2 开发案例说明 示坡线,是指示斜坡降落的方向线,它与等高线垂直相交。一般表示在谷地、山头、鞍部、图廓边及斜坡方向不易判读的地方。凹地的最高、最低 一条等高线上也应表示示坡线[3] 。在测绘4D 产品之一的数字线划图(DLG)中,示坡线一般以有向点或有向线(长度为定值的线段)的方式表达。其中,有向点应严格捕捉相应等高线,通过填写要素角度属性项表达所示方向;有向线为线段,起始节点应严格捕捉相应等高线,终止节点指向所示方向,线段长度为规范要求长度。 图1 山丘、山峰和盆地、洼地的示坡线示意图 一般在DLG 制作过程中,特别是中小比例尺地形图,通常利用立体测图系统,在恢复立体影像相对模型的情况下,人工判断地貌,并采集示坡线。采集时要求在对应等高线采集第一点,沿斜坡的方向采集第二点。为提高生产效率及生产工序技术要求,此时采集的示坡线,不符合前述DLG 拓扑规范要求。存在未严格捕捉等高线,造成悬挂和相交的拓扑问题;或示坡线要素长度不定,不符合技术要求;亦或示坡线采集图形上看正确,实际上刚好与要求相反,是由斜坡降落方向向等高线采集。这些情况致使下工序矢量数据编辑处理时,需要人工核对、修改,工作量大且繁琐(尤其是在沙漠、特殊丘陵地区,1幅1∶10000比例尺地形图可能需要上千个示坡线表示地貌形态),如果作业人员责任心不足还易造成质量隐患。 3 处理方案设计 3.1 方案设计思路 数据要素处理的关键是两点:一是解决拓扑问题,二是实现示坡线角度正确表达。因此解决思路是:首先,要满足拓扑要求,即相应要素之间严格

Python实现WEB详细过程

使用Websocket对于客户端来说无疑十分简单。websocket提供了三个简单的函数,onopen,onclose以及onmessage,顾名思义,他们分别监听socket的开启、断开和消息状态。 例如在一个WebSocket的客户端例子中,你可以这样写: Web Socket Example

在代码中,首先创建了一个新的socket,指向websocket服务器端: var s = new WebSocket(“ws://localhost:8000/”); 然后利用三个基本函数实现状态监听。 当然这个例子并不完善,它参考了麻省理工一位研究生Mr. Yang的文章(https://www.doczj.com/doc/617598226.html,/wp/web-sockets-tutorial-with-simple-python- server/),而你如果需要更好的客户端测试代码,可以看这里:http://cl.ly/3N3Y3t2s3U1v1h0A433u我们在新的代码里提供了完成的和服务器交互数据的功能,发送数据我们使用的函数是send(),你可以在代码中看到。 我们之所以不直接引用Yang的文章是因为Yang对服务器的理解不够完善,或者用他的话来说就是outdate。 感谢Yang为我们提供了一个简单的socket server的例子,不过可惜放在现在来说它是有问题的,当然我们还是把例子引述如下: #!/usr/bin/env python import socket, threading, time

python数据分析过程示例

python数据分析过程示例

引言 几年后发生了。在使用SAS工作超过5年后,我决定走出自己的舒适区。作为一个数据科学家,我寻找其他有用的工具的旅程开始了!幸运的是,没过多久我就决定,Python作为我的开胃菜。 我总是有一个编写代码的倾向。这次我做的是我真正喜欢的。代码。原来,写代码是如此容易! 我一周内学会了Python基础。并且,从那时起,我不仅深度探索了这门语言,而且也帮助了许多人学习这门语言。Python是一种通用语言。但是,多年来,具有强大的社区支持,这一语言已经有了专门的数据分析和预测模型库。 由于Python缺乏数据科学的资源,我决定写这篇教程来帮助别人更快地学习Python。在本教程中,我们将讲授一点关于如何使用Python 进行数据分析的信息,咀嚼它,直到我们觉得舒适并可以自己去实践。

目录 1. 数据分析的Python基础 o为什么学Python用来数据分析o Python 2.7 v/s 3.4 o怎样安装Python o在Python上运行一些简单程序2. Python的库和数据结构 o Python的数据结构 o Python的迭代和条件结构

o Python库 3. 在Python中使用Pandas进行探索性分析 o序列和数据框的简介 o分析Vidhya数据集——贷款的预测问题 4. 在Python中使用Pandas进行数据再加工 5. 使用Python中建立预测模型 o逻辑回归 o决策树 o随机森林 让我们开始吧 1.数据分析的Python基础 为什么学Python用来数据分析 很多人都有兴趣选择Python作为数据分析语言。这一段时间以来,我有比较过SAS和R。这里有一些原因来支持学习Python:

ArcGISPython实习指导

实习一Python基础学习 1.什么是python Python是一种不受局限、跨平台的开源编程语言,它功能强大且简单易学。因而得到了广泛应用和支持。 ArcGIS 9.0社区中引入了Python。此后,Python被视为可供地理处理用户选择的脚本语言并得以不断发展。每个版本都进一步增强了Python体验,从而为您提供更多的功能以及更丰富、更友好的Python体验。 ESRI已将Python完全纳入ArcGIS中,并将其视为可满足用户需求的语言。下面仅介绍Python的部分优势: ?易于学习,非常适合初学者,也特别适合专家使用 ?可伸缩程度高,适于大型项目或小型的一次性程序(称为脚本) ?可移植,跨平台 ?可嵌入(使ArcGIS可脚本化) ?稳定成熟 ?用户社区规模大 Python已延伸到ArcGIS中,成为了一种用于进行数据分析、数据转换、数据管理和地图自动化的语言,因而有助于提高工作效率。 2.在ArcGIS中使用Python (1)打开ArcMap,在工具栏中点击“”按钮,位置如图1-1所示,即可打开Python编辑窗口。

图1-1 (2)Python程序为解释运行,输入一行代码,按“回车”键后即可运行,如图1-2。 图1-2

3.行和缩进 学习Python与其他语言最大的区别就是,Python的代码块不使用大括号({})来控制类,函数以及其他逻辑判断。python最具特色的就是用缩进来写模块。(1)缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。在Python窗口中输入如图1-3所示的代码块并运行,该代码块是严格缩进的。 图1-3 (2)以下代码将会执行错误,如图1-4: 图1-4

[数据分析] 推荐 :用Python实现神经网络(附完整代码)!

在学习神经网络之前,我们需要对神经网络底层先做一个基本的了解。我们将在本节介绍感知机、反向传播算法以及多种梯度下降法以给大家一个全面的认识。 一、感知机 数字感知机的本质是从数据集中选取一个样本(example),并将其展示给算法,然后让算法判断“是”或“不是”。一般而言,把单个特征表示为xi,其中i是整数。所有特征的集合表示为,表示一个向量: , 类似地,每个特征的权重表示为其中对应于与该权重关联的特征 的下标,所有权重可统一表示为一个向量: 这里有一个缺少的部分是是否激活神经元的阈值。一旦加权和超过某个阈值,感知机就输出1,否则输出0。我们可以使用一个简单的阶跃函数(在图5-2中标记为“激活函数”)来表示这个阈值。

一般而言我们还需要给上面的阈值表达式添加一个偏置项以确保神经元对全0的输入具有弹性,否则网络在输入全为0的情况下输出仍然为0。 注:所有神经网络的基本单位都是神经元,基本感知机是广义神经元的一个特例,从现在开始,我们将感知机称为一个神经元。 二、反向传播算法 2.1 代价函数 很多数据值之间的关系不是线性的,也没有好的线性回归或线性方程能够描述这些关系。许多数据集不能用直线或平面来线性分割。比如下图中左图为线性可分的数据,而右图为线性不可分的数据:

在这个线性可分数据集上对两类点做切分得到的误差可以收敛于0,而对于线性不可分的数据点集,我们无法做出一条直线使得两类点被完美分开,因此我们任意做一条分割线,可以认为在这里误差不为0,因此我们需要一个衡量误差的函数,通常称之为代价函数: 而我们训练神经网络(感知机)的目标是最小化所有输入样本数据的代价函数 2.2 反向传播 权重通过下一层的权重()和()来影响误差,因此我们需要一种方法来计算对误差的贡献,这个方法就是反向传播。 下图中展示的是一个全连接网络,图中没有展示出所有的连接,在全连接网络中,每个输入元素都与下一层的各个神经元相连,每个连接都有相应的权

用 Python 脚本实现对 Linux 服务器的监控

用Python 脚本实现对Linux 服务器的监控 目前Linux 下有一些使用Python 语言编写的Linux 系统监控工具比如inotify-sync(文件系统安全监控软件)、glances(资源监控工具)在实际工作中,Linux 系统管理员可以根据自己使用的服务器的具体情况编写一下简单实用的脚本实现对Linux 服务器的监控。本文介绍一下使用Python 脚本实现对Linux 服务器CPU 内存网络的监控脚本的编写。 1评论: 曹江华, 系统管理员, 中科思密达有限公司 2013 年12 月23 日 内容 Python 版本说明 Python 是由Guido van Rossum 开发的、可免费获得的、非常高级的解释型语言。其语法简单易懂,而其面向对象的语义功能强大(但又灵活)。Python 可以广泛使用并具有高度的可移植性。本文Linux 服务器是Ubuntu 12.10, Python 版本是 2.7 。如果是 Python 3.0 版本的语法上有一定的出入。另外这里笔者所说的Python 是 CPython,CPython 是用C 语言实现的Python 解释器,也是官方的并且是最广泛使用的Python 解释器。除了CPython 以外,还有用Java 实现的Jython 和用.NET 实现的IronPython,使Python 方便地和Java 程序、.NET 程序集成。另外还有一些实验性的Python 解释器比如PyPy。CPython 是使用字节码的解释器,任何程序源代码在执行之前先要编译成字节码。它还有和几种其它语言(包括 C 语言)交互的外部函数接口。 回页首工作原理:基于/proc 文件系统 Linux 系统为管理员提供了非常好的方法,使其可以在系统运行时更改内核,而不需要重新引导内核系统,这是通过/proc 虚拟文件系统实现的。/proc 文件虚拟系统是一种内核和内核模块用来向进程(process)发送信息的机制(所以叫做“/proc”),这个伪文件系统允许与内核内部数据结构交互,获取有关进程的有用信息,在运行中(on the

如何用 Python实现自动化测试

如何用 Python实现自动化测试 近期一直在看王阳明的相关书籍,他的一个观点我非常赞同,不管要学习什么一定要立志,立志是非常非常重要的,但是立志前一定要有动机,或者说要有"打击",那种让 你内心感到瓦凉瓦凉的打击!我在软件测试这个行业工作了12年之久,截至5年前,我 一直很愉悦地,内心充盈地做着黑盒测试,曾几何时我也觉得最好离"开发"远远的,因为 很多人都说:女孩子做测试挺好的~~ 但是,我遇到很一个非常现实而残忍的问题:"裁员",想想自己也挺奇葩的,在一个公司竟然待了12年之久,在这12年里,因为各种原因,我经历了大大小小的裁员有5次之多,一有裁员需求,老板第一个考虑的就是测试人员。每一次裁员,都是自己团队里的兄弟姐妹,我要亲自告诉他或她,因为公司现在裁员,需 要你离开公司,虽然你的工作是合格的,甚至是优秀的~~然后我要鼓起勇气陪着哭泣的他或她去立刻办理离职手续,一刻也不能停留~~你能想象我内心的崩溃吗?每一次我都会问为什么又是我们?每一次老板都会坦率地告诉我,为什么裁员考虑的是我们测试团队:就 是因为可取代性太强了!!我真的实实在在意识到了黑盒测试的无力。 公司在寒冬时,需要"蓄积能量",也就是需要减少开支,老板就要开始衡量,哪类研 发人员被裁,后续如果公司渡过难关后补起来比较容易,很不幸,每一次评估下来都是测 试人员。有个声音在我脑海里越来越清晰:不能这样,我们团队不能总是做可取代性强的 工作!!所以测试的发展方向是什么?我要有什么样的技能才能改观老板对我们的认知??我开始在网上找,当然也在51testing这样专业的网站上找寻,我找寻的结果是:未来的 测试应该是以自动化为主,手动测试为辅。所以测试人员必须要学会编程,因为测试是一 个无穷尽的工作,如何体现测试人员的价值,就是在单位时间内能有更多的产出,有让老 板瞠目结舌的产出!! 怎么学习Python在第二类问题中有详细说明,期间遇到的困难实在太多了,首要的 问题就是团队的信心不足,我们离开coding实在太久了,这个困难,我只能说,受到的 打击越大,越深,信心就会越足,容许我先哭一会~~ 除了这些形而上的困难,当然也有 实实在在的困难,我举一个实际且非常具体的问题:电脑1开发的脚本,可以正常运行,移植到电脑2就无法运行? 我们在开发时遇到上述问题,开发者开始一直纠结是电脑环境的问题,问题一直在发散,一直在发散,最后问题越来越复杂,搞到最后不可收拾......,最后他告诉我,这个开发任务无法进行@_@,这个小伙子成功在他的小主管的心里留下了:解决实际问题差的印象...... 他的问题在于没有回到问题的本质:Python的作用是定位,操作;就首先回到确认 窗口是否定位的思路上(当时他竟然还质疑他的小主管:窗口肯定定位了,因为在他的开 发电脑上都是定位的好好的*_*):真的发现窗口没有被成功定位。开发者就很困惑,为什么在电脑1是好的,电脑2就不行。他根本没想到是定位出的问题,所以连简单的确认动作也没做!然后再网上一通乱搜,真的越搜越晕,越搜问题越发散。

ARCGIS与PYTHON

arcgis与python(zz) ESRI软件中的脚本语言一直使用两种模式。 第一种为AML宏语言,该模型显示了PrimOS系统特性。输出为文件格式,数据处理基于目录和文件系统,代码是线性的。 第二个模式是AVENUE语言,继承了Smalltalk的特性。对象响应是调用方法名称,处理事物不必是线性的,有时会引起I/O冲突,集成啦其他语言的混合包。两种语言都有各自的弊端。 随着ArcGIS8的出现,基于地理视图的脚本语言开始引入,基于接口的编程要求用户使用“真正的”编程语言,如,C++,VB,访问ArcGIS8的功能。没有脚本语言自动完成该系列任务。这用户必须写可执行程序,在复杂的接口树和对象里找到需要的工具,并汇编成DLLs动态库和类型库来使用自定义功能。 ArcGIS9版本的面世,ESRI再次提供了访问该软件的新的脚本语言。ESRI意识到,许多用户并不想或不必是个开发者,但还想使用工具解决他们遇到的问题。这些工具包括,友好一致的界面,脚本对象,用于自定义功能所必须的细致入微的编程工具。 满足这些需要,ESRI提供了多种脚本语言-使用ArcObjects-开始空间处理框架。Python,ESRI支持的脚本语言之一,是一种开源的,编译性的,动态类型的,面相对象的脚本语言之一。Python包含在ArcGIS9中,典型的安装与其他组件一起安装。本篇文章总体介绍如何利用P ython的资源帮助大家的GIS编程以及集成ESRI工具。 1Python简介 Python第一次公开发行是1991年,作者是CWI(阿姆斯特丹国家数学和计算机科学研究所)的研究员Guido van Rossum。名字来源于Guido喜欢的喜剧连续剧“Monty Pytho n”,python继承了许多其他语言的特征,如ABC,Modula,LISP,以及Haskel,这些包括很高级的特征,如元类(metaclass),生成器,列表综合(list comprehension)。但更多的程序员需要的仅仅是python的基本类型,如,列表,字典,字符串。 虽然,已经有13年的发展,目前的版本是2.3。这反映了Guido慈善的独裁者设计哲学,以及开发组的精益求精。他们努力增加新的内容,并保持向后的兼容性,当必要时,重新设计在以前发现有问题的地方。 2python设计 Python语言被设计成易于使用,易于学习的动态脚本语言,这意味着用户不需要编译,交互式的方式可以让用户学习到许多执行层次。 Python的设计哲学,Tim Peter在The Zen of Python描述的最清晰,python程序员遵照这些哲学指导他们学习这门语言,帮助他们编写代码,以保持python的一贯风格。

python语言经典基础级案例(含源代码)

python语言经典案例(基础级) 案例1: 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 程序分析:利用while 或for 语句,条件为输入的字符不为'\n'。 实例- 使用while 循环 #!/usr/bin/python # -*- coding: UTF-8 -*- import string s = raw_input('请输入一个字符串:\n') letters = 0 space = 0 digit = 0 others = 0 i=0 while i < len(s): c = s[i] i += 1 if c.isalpha(): letters += 1 elif c.isspace(): space += 1 elif c.isdigit(): digit += 1 else: others += 1 print'char = %d,space = %d,digit = %d,others = %d' % (letters, space,digit,others) 实例- 使用for 循环 #!/usr/bin/python

# -*- coding: UTF-8 -*- import string s = raw_input('请输入一个字符串:\n') letters = 0 space = 0 digit = 0 others = 0 for c in s: if c.isalpha(): letters += 1 elif c.isspace(): space += 1 elif c.isdigit(): digit += 1 else: others += 1 print'char = %d,space = %d,digit = %d,others = %d' % (letters, space,digit,others) 以上实例输出结果为: 案例2: 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? 程序分析:无 程序源代码:

基于Python的Abaqus二次开发实例讲解

基于Python的Abaqus二次开发实例讲解 (asian58 2013.6.26) 基于Python的Abaqus的二次开发便捷之处在于: 1、所有的代码均可以先在Abaqus\CAE中操作一遍后再通过rp文件读取,然后再在此基础上进行相应的修改; 2、Python是一种解释性语言,读起来非常清晰,因此在修改程序的过程中,不存在程序难以理解的问题; 3、Python是一种通用性的、功能非常强大的面向对象编程语言,有许多成熟的类似于Matlab函数的程序在网络上流传,为后期进一步的数据处理提供了方便。 为了更加方便地完成Abaqus的二次开发,需进行一些相关约定: 1、所有参数化直接通过点的坐标值进行,直接对几何尺寸的参数化反而更加繁琐; 2、程序参数化已不允许在模型中添加太多的Tie,因此不同零部件的绑定直接通过共节点来进行,这就要求建模方法与常规的建模方法有所区别。思路如下: 将一个整机拆成几个大的Part来建立,一个Part中包含许多零件,这样在划分网格式时就可以自动实现共节点的绑定。不同的零件可通过建立不同的Set来进行区分,不同Part 的绑定可以通过Tie来实现。将一个复杂的结构拆成几个恰当的Part来建立,一方面可以将复杂的模型简单化,使建立复杂模型成为可能;另一方面,不同的Part可单独调用,从而又可实现程序的模块化,增加程序的适应范围,延长程序的使用寿命,也方便后期程序的维护和修改。 3、通过py文件建立起的模型要进行参数优化,已不适合采用Isight中Abaqus模块,需要用到Isight的Simcode模块。 下面详细解释一个臂架的py文件。 #此程序用来绘制臂架前段 #导入相关模块 # -*- coding: mbcs -*- from abaqus import * from abaqusConstants import * #定义整个臂架的长、宽、高 L0=14300 W0=1650 H0=800

在abaqus中使用python实现功能(1,2)

在abaqus中使用python实现的功能(一、二) By lxm9977(lxm200501@https://www.doczj.com/doc/617598226.html,) 功能一:实行提交多个job的功能。 对象:Job object 使用:在源文件开始写上import job,源程序用mdb.jobs[name] 使用名字为name的job对象。 建立一个job对象的方法: z利用已有的inp文件中建立job:mdb.JobFromInputFile() z利用已有的cae中建立job: Job(...) 建议用第一种方法。 设定参数的方法: 9利用第一种方法建立job的时候,可以设定很多的参数,比如type,queue,userSubroutine等。格式:mdb.JobFromInputFile(name=,inputFile=,type=,queue =,userSubroutine=,…….)。 9也可以先建立一个job,然后利用job对象的setValues来设定参数,格式:job.setValues(type=,queue=,userSubroutine=,…….)。 一个简单的例子: 文件:job.py from abaqusConstants import * import job mdb.JobFromInputFile(name='job-1-1',inputFileName='Job-1.inp') #基于inp文件Job-1.inp建立名称为job-1-1的job mdb.jobs['job-1-1'].setValues(waitMinutes=1) #设定参数 mdb.jobs['job-1-1'].submit() #提交任务 mdb.jobs['job-1-1'].waitForCompletion() 运行: 在cmd下面运行:Abaqus cae nogui=job.py

(完整版)Python100个小例子.docx

一、 Python 练习实例 1 题目:有四个数字: 1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析:可填在百位、十位、个位的数字都是 1、 2、 3、4。组成所有的排列后再去掉不满足条件的排列。 程序源代码: #!/usr/bin/python # -*- coding: UTF-8 -*- for i in range(1, 5): for j in range(1, 5): for k in range(1, 5): if (i != k) and (i != j) and (j != k): print(i, j, k) 二、 Python 练习实例 2 题目:企业发放的奖金根据利润提成。利润(I) 低于或等于10 万元时,奖金可提10%;利润高于 10 万元,低于 20 万元时,低于 10 万元的部分按 10%提成,高于 10 万元的部分,可提成 7.5%;20 万到 40 万之间时,高于 20 万元的部分,可提 成5%;40 万到 60 万之间时高于 40 万元的部分,可提成 3%;60 万到 100 万之间时,高于 60 万元的部分,可提成 1.5%,高于 100 万元时,超过 100 万元的部分按 1%提成,从键盘输入当月利润 I ,求应发放奖金总数? 程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 程序源代码: #!/usr/bin/python # -*- coding: UTF-8 -*- i = int(input('净利润:')) arr = [1000000, 600000, 400000, 200000, 100000, 0] rat = [0.01, 0.015, 0.03, 0.05, 0.075, 0.1] r = 0 for idx in range(0, 6): if i > arr[idx]: r += (i - arr[idx]) * rat[idx] print((i - arr[idx]) * rat[idx]) i = arr[idx] print(r) 三、 Python 练习实例 3 题目:一个整数,它加上 100 后是一个完全平方数,再加上 168 又是一个完全平 方数,请问该数是多少? 程序分析: 假设该数为 x 。 1、则: x + 100 = n2, x + 100 + 168 = m2 2、计算等式: m2 - n2 = (m + n)(m - n) = 168

相关主题
文本预览
相关文档 最新文档