您的位置:

python笔记二(2python)

本文目录一览:

Python笔记--查找以及更改python解析器的位置

1.

2.

3.图中箭头所指即为python解析器的位置

4.在pychram:file-settings-python interpreter-设置-add-new environment-base interpreter将路径粘到这里选择exe文件-existing environment同理

iOS自动化python + WebDriverAgent使用笔记(二)

新有一个新工具,它可以在没有 xcodebuild 的情况下启动 WDA,甚至可以在 Linux 和 Windows 下运行,见:

该工具需要的wda.ipa在上一篇笔记最下方有教程

Python笔记:命令行参数解析

有些时候我们需要通过命令行将参数传递给脚本,C语言中有个getopt()方法,python中也有个类似的命令行参数解析方法getopt()。python也提供了比getopt()更简洁的argparse方法。另外,sys模块也可以实现简单的参数解析,本文将对这3种命令行参数解析方法简要介绍。

sys.argv是传入的参数列表,sys.argv[0]是当前python脚本的名称,sys.argv[1]表示第一个参数,以此类推。

命令行运行:

可以看到传入的参数通过sys.argv来获取,它就是一个参数列表。

python的getopt与C语言的的getopt()函数类似。相比于sys模块,支持长参数和短参数,并对参数解析赋值。但它需要结合sys模块进行参数解析,语法格式如下:

短参数为单个英文字母,如果必须赋值需要在后面加英文冒号( : ),长参数一般为字符串(相比短参数,更能说明参数含义),如果必须赋值需要在后面加等号( = )。

命令行运行:

注意:短参数(options)和长参数(long_options)不需要一一对应,可以任意顺序,也可以只有短参数或者只有长参数。

argparse模块提供了很多可以设置的参数,例如参数的默认值,帮助消息,参数的数据类型等。argparse类主要包括ArgumentParser、add_argument和parse_args三个方法。

下面介绍这三个函数的使用方法。

argparse默认提供了 -h | --help 参数:

命令行运行:

下面列出部分参数:

下面来添加参数:

命令行运行:

parse_args() 方法用于解析参数,在前面的示例代码中使用parse_args方法来提取参数值,对于无效或者错误的参数会打印错误信息和帮助信息:

命令行运行:

本文介绍了Python的三种命令行参数解析方法sys.argv、getopt和argparse,可以根据自己的需要进行选择,getopt和argparse两种方法相比来说,建议选择argparse,代码量更少更简洁。更详细的使用方法参考官方文档:

--THE END--

GDAL 笔记二:python for GDAL

Github上找到的好东西, 煮书 主要还是覆盖了创建数据类型,统计数据量,转换数据等。

个人感觉基于GDAL的二次开发,比ArcGIS Engine更加实用,因为 更加基础,更加抽象,更加底层 。

gdal的安装目录内置了很多脚本,其中包括 gcp2vec.py , gdal_auth.py , gdal_calc.py , gdal_edit.py , gdal_fillnodata.py , gdal_merge.py , gdal_polygonize.py , gdal_proximity.py , gdal_retile.py , gdal_sieve.py , gdal2tiles.py , gdal2xyz , gdalchksum , gdalcompare , gdalident.py , gdalimport.py , gdalmove.py 等。

gdal2tiles.py 是一个gdal的扩展插件,运用gdal的数据接入口,将栅格图片切成小瓦片和元数据,遵循OSGeo TMS标准。让你自己的数据在openlayers和googlemap,方便你展示空间数据。

commenthol/gdal2tiles-leaflet

在.NET平台GDAL有很多坑,不建议使用,已排雷。

This directory in the GDAL project tree has some C# examples, specifically this one that might suit your needs.

You can find the GDAL API documentation here

There is an GDAL API tutorial here

The OGR API documentation is here

The OSR API documentation is here

All the links you need for GDAL can be reached from

All the links you need for OGR/OSR can be reached from

Python笔记:Python装饰器

装饰器是通过装饰器函数修改原函数的一些功能而不需要修改原函数,在很多场景可以用到它,比如① 执行某个测试用例之前,判断是否需要登录或者执行某些特定操作;② 统计某个函数的执行时间;③ 判断输入合法性等。合理使用装饰器可以极大地提高程序的可读性以及运行效率。本文将介绍Python装饰器的使用方法。

python装饰器可以定义如下:

输出:

python解释器将test_decorator函数作为参数传递给my_decorator函数,并指向了内部函数 wrapper(),内部函数 wrapper() 又会调用原函数 test_decorator(),所以decorator()的执行会先打印'this is wrapper',然后打印'hello world', test_decorator()执行完成后,打印 'bye' ,*args和**kwargs,表示接受任意数量和类型的参数。

装饰器 my_decorator() 把真正需要执行的函数 test_decorator() 包裹在其中,并且改变了它的行为,但是原函数 test_decorator() 不变。

一般使用如下形式使用装饰器:

@my_decorator就相当于 decorator = my_decorator(test_decorator) 语句。

内置装饰器@functools.wrap可用于保留原函数的元信息(将原函数的元信息,拷贝到对应的装饰器函数里)。先来看看没有使用functools的情况:

输出:

从上面的输出可以看出test_decorator() 函数被装饰以后元信息被wrapper() 函数取代了,可以使用@functools.wrap装饰器保留原函数的元信息:

输出:

装饰器可以接受自定义参数。比如定义一个参数来设置装饰器内部函数的执行次数:

输出:

Python 支持多个装饰器嵌套:

装饰的过程:

顺序从里到外:

test_decorator('hello world') 执行顺序和装饰的过程相反。

输出:

类也可以作为装饰器,类装饰器主要依赖__call__()方法,是python中所有能被调用的对象具有的内置方法(python魔术方法),每当调用一个类的实例时,__call__()就会被执行一次。

下面的类装饰器实现统计函数执行次数:

输出:

下面介绍两种装饰器使用场景

统计函数执行所花费的时间

输出:

在使用某些web服务时,需要先判断用户是否登录,如果没有登录就跳转到登录页面或者提示用户登录:

--THE END--

Python数据分析笔记#8.2.2 索引上的合并

「目录」

数据规整:聚合、合并和重塑

Data Wrangling: Join, Combine, and Reshape

-------- 数据库风格的DataFrame合并

-------- 索引上的合并

上一篇笔记讲的是如何根据DataFrame的列名来链接两个DataFrame对象。

有时候我们要根据DataFrame中的index索引来合并数据。这种情况下,我们可以传入 left_index=True或right_index=True 或两个都传入来说明索引被用作链接键。

我们先创建两个DataFrame,指明根据第一个DataFrame的'key'列和第二个DataFrame的index索引来合并数据:

默认的merge方法是求取链接键的交集,通过传入how='outer'可以得到它们的并集:

层次化索引数据的合并

对于层次化索引的数据的合并,我们要以 列表的形式指明用作合并键的多个列 。

比如下面我们就指定根据第一个DataFrame的'key1'列和'key2'列以及第二个DataFrame的index索引来合并:

同时使用双方的索引来合并也没问题:

join方法

DataFrame还有便捷的实例方法join,它能更方便的实现按索引合并,但要求没有重叠的列。

我们还可以向join传入一组DataFrame,类似于concat函数,实现多个DataFrame的合并拼接:

-END-