python使用osgeo库_Python教程:模块

基本语法

你已经学习了如何在你的程序中定义一次函数而重用代码。如果你想要在其他程序中重用很多函数,那么你该如何编写程序呢?你可能已经猜到了,答案是使用模块。模块基本上

就是一个包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以.py为扩展名。

使用import语句

模块可以从其他程序 输入 以便利用它的功能。这也是我们使用Python标准库的方法。首先,我们将学习如何使用标准库模块。以os模块为例,下面程序打印出给定目

录下满足特定条件(文件名中含'wx',后缀为'py')的文件的路径。#!/usr/bin/python

# -- coding:utf-8 --

import os

def print_file_path(indir):

for wroot, wdirs, wfiles in os.walk(indir):

for wfile in wfiles:

(file_name, file_ext) = os.path.splitext(wfile)

if ('wx' in file_name ) and ( file_ext == '.py'):

filepath = os.path.join(wroot, wfile)

print(filepath)

if name == 'main':

inws = '/home/bk/progs'

print_file_path(inws)

此例短小强悍,充分体现了Python语言简洁的特点。此处使用了os模块,os.walk()对文件夹进行遍历,返回元组,其中第一个为起始路径,第二个为起始路径

下的文件夹,第三个是起始路径下的文件。 os.path.splitext()的作用是分离文件名与扩展名。os.path.join()的作用是合成文件的路径。

from..import语句

这个常见的例子是数学函数。如下面程序,可以像内建函数一样直接使用math模块下面的sqrt(),pow()函数。from math import *

def math_demo():

x = 3

y = 4

z = sqrt(pow(x,2) + pow(y,2))

print(z)

if name == 'main':

math_demo()

这样的优点是使得程序比较简洁,避免了使用math.sqrt()与math.pow()这样的形式。 但是,一般说来,应该避免使用from..import。 使

用import语句,可以使你的程序更加易读,也可以避免名称的冲突。即使是非常常用的math模块中的一些函数,在其他模块,如numpy中也进行了实现。这样,当

同时使用这两个类库时,就会出现冲突。

创建自己的模块

创建你自己的模块是十分简单的,你一直在这样做!每个Python程序也是一个模块。你已经确保它具有.py扩展名了。下面这个例子将会使它更加清晰。

上面是一个模块的例子。你已经看到,它与我们普通的Python程序相比并没有什么特别之处。我们接下来将看看如何在我们别的Python程序中使用这个模块。

记住这个模块应该被放置在我们输入它的程序的同一个目录中,或者在sys.path所列目录之一,文件名保存为mymodule.py。

通过使用自定义的模块,可以将程序放到不同的文件中进行组织,从而方便大型程序的编写与多人协作。

你可能感兴趣的:(python使用osgeo库)