搜档网
当前位置:搜档网 › Python Imaging Library中文手册、PIL中文手册、python图像处理

Python Imaging Library中文手册、PIL中文手册、python图像处理

Python Imaging Library中文手册、PIL中文手册、python图像处理
Python Imaging Library中文手册、PIL中文手册、python图像处理

Python Imaging Library 中文手册

这是PIL的官方手册,2005年5月6日发布。这个版本涵盖PIL 1.1.5的全部内容。本中文手册来自https://www.sodocs.net/doc/3f7231465.html, 啄木鸟社区

你可以在PythonWare library找到改文档其它格式的版本以及先前的版本。

原版出处:https://www.sodocs.net/doc/3f7231465.html,/library/pil/handbook/

目录

1.Python Imaging Library 中文手册

2.第一部分:介绍

1.概览

1.介绍

2.图像归档处理

3.图像显示

4.图像处理

2.入门导引

1.使用Image 类

2.读写图像

3.裁剪、粘贴和合并图像

4.滚动一幅图像

5.分离与合并通道

3.几何变换

1.简单的几何变换

2.transpose图像

4.颜色变换

1.转换图像颜色模式

5.图像增强

1.滤波器

1.使用滤波器

2.点操作

1.使用点变换

2.处理单个通道

3.增强

1.增强图像

6.图像序列

1.读取图像序列

2.一个序列迭代类

7.Postscript格式打印

1.Drawing Postscript

8.更多关于读取图像

1.控制解码器

3.概念

1.通道

2.模式

3.大小

4.坐标系统

5.调色板

6.信息

7.滤波器

4.第二部分:模块手册

5.Image 模块

1.例子

2.函数

1.new

2.open

3.blend

https://www.sodocs.net/doc/3f7231465.html,posite

5.eval

6.frombuffer

7.fromstring

8.merge

3.方法

1.convert

2.copy

3.crop

4.draft

5.filter

6.fromstring

7.getbands

8.getbbox

9.getdata

10.getextrema

11.getpixel

12.histogram

13.load

14.offset

15.paste

16.point

17.putalpha

18.putdata

19.putpalette

20.putpixel

21.resize

22.rotate

23.save

24.seek

25.show

26.split

27.tell

28.thumbnail

29.tobitmap

30.tostring

31.transform

32.transpose

33.verify

4.属性

1.format

2.mode

3.size

4.palette

https://www.sodocs.net/doc/3f7231465.html,

6.ImageChops 模块

1.函数

1.constant

2.duplicate

3.invert

4.lighter

5.darker

6.difference

7.multiply

8.screen

9.add

10.subtract

11.blend

https://www.sodocs.net/doc/3f7231465.html,posite

13.offset

7.ImageColor 模块

1.Colour Names

2.函数

1.getrgb

2.getcolor

8.ImageDraw 模块

1.Example

2.Concepts

1.Coordinates

2.Colour Names

3.Fonts

3.函数

1.Draw

4.方法

1.arc

2.bitmap

3.chord

4.ellipse

5.line

6.pieslice

7.point

8.polygon

9.rectangle

10.text

11.textsize

5.Options

1.outline

2.fill

3.font

https://www.sodocs.net/doc/3f7231465.html,patibility

1.ImageDraw

2.setink

3.setfill

4.setfont

9.ImageEnhance 模块

1.Example

2.Interface

3.The Color Class

4.The Brightness Class

5.The Contrast Class

6.The Sharpness Class 10.ImageFile 模块

1.Example

2.函数

1.Parser

3.方法

1.feed

11.ImageFileIO 模块

1.函数

12.ImageFilter 模块

1.Example

2.Filters

1.Kernel

2.RankFilter

3.MinFilter

4.MedianFilter

5.MaxFilter 13.ImageFont 模块

1.例子

2.函数

1.load

2.load_path

3.truetype

4.load_default

3.方法

1.getsize

2.getmask 14.ImageGrab 模块

1.函数

1.grab

2.grabclipboard 15.ImageOps 模块

1.函数

1.autocontrast

2.colorize

3.crop

4.deform

5.equalize

6.expand

7.fit

8.flip

9.grayscale

10.invert

11.mirror

12.posterize

13.solarize 16.ImagePath 模块

1.函数

1.Path

17.ImagePalette 模块

1.例子

2.类

1.ImagePalette 18.ImageSequence 模块

1.函数

1.Iterator

2.方法

1.Operator [] 19.ImageStat 模块

1.函数

1.Stat

2.Attributes

1.extrema

2.count

3.sum

4.sum2

5.pixel

6.median

7.rms

8.var

9.stddev

20.ImageTk 模块

1.The BitmapImage Class

2.The PhotoImage Class 21.ImageWin 模块

1.Dib 类

1.Dib

2.方法

1.expose

2.draw

3.palette

4.paste

22.PSDraw 模块

1.Classes

1.PSDraw

2.PSDraw 方法

1.begin

2.end

3.line

4.rectangle

5.text

6.setfont

7.setink

8.setfill

23.ImageCrackCode 模块(PIL Plus)

1.函数

1.CrackCode

2.方法and attributes

1.area

2.bbox

3.caliper

4.centroid

5.edge

6.links

7.offset

8.start

9.top

10.hit

11.topath

12.getmask

13.getoutline

24.ImageMath 模块(PIL Plus)

1.例子

2.函数

1.eval

3.表达式语法

1.运算符

2.内建函数

25.第三部分:工具手册

26.pildriver 工具

1.例子

2.The PILDriver Class

3.方法

4.pilconvert 工具

5.pilfile 工具

6.pilfont 工具

7.pilprint 工具

27.附录

1.软件许可证

2.技术支持

3.图像文件格式

4.编写自己的文件解码器

28.译注:中英文术语对照表

第一部分:介绍

PIL 1.1.5 | 2005年5月5日| Fredrik Lundh

概览

介绍

Python Imaging Library为Python解释器提供了图像处理的功能。

这个库提供了广泛的文件格式支持、高效的内部表示以及相当强大的图像处理功能。

这个图像处理库的核心被设计成为能够快速访问以几种基本像素类型表示的图像数据。它为通用图像处理工具提供了一个坚实基础。

让我们来看一些这个库可能的用途:

图像归档处理

Python Imaging Library适合编写图像归档和批处理应用程序。使用这个库可以创建缩略图、转换文件格式、打印图像等。

当前版本的库能够识别和读取很多的图像格式。而能够输出的格式被特意限制于在交换和展示图像中最常用的格式上。

图像显示

当前版本的库包含Tk的PhotoImage和 BitmapImage接口,也包含Windows 的DIB接口(可以同PythonWin和其他基于Windows的界面工具包一起使用)。还有一些其他的PIL支持提供了很多其他的GUI工具包。

为了调试方便,库中有一个 show方法,它把图像保存到磁盘中,并调用外部显示工具来显示它。

图像处理

这个库提供了基本的图像处理功能,包括点操作、一些内建滤波核的滤波操作以及颜色空间变换操作。

这个库也支持图像的缩放、旋转及任何仿射(affine)变换。

库中包含一个histogram方法,可以从图像中提取某些统计特征。用它可以实现自动的对比度增强以及全局统计分析功能。

入门导引

使用Image 类

Python Imaging Library中最重要的类是Image 类,它定义在与它同名的模块中。有多种创建这个类的对象的方法:可以从文件中读取得到,也可以从其他图像经处理得到,或者创建一个全新的。

要从文件读取图像,可以使用Image 模块提供的open 函数。

1 >>> import Image

2 >>> im = Image.open("lena.ppm")

3

如果成功,这个函数返回一个Image 对象。可以使用这个对象的属性来查看文件的内容。

切换行号显示

1 >>> print im.format, im.size, im.mode

2 PPM (512, 512) RGB

3

format 属性表示图像的原始格式。如果图像不是从文件中读取的,则它被设置成None。size 属性是一个2元组,表示图像的宽度和高度(以像素为单位)。mode 属性定义图像的色彩通道的数量与名字,同时也包括像素的类型和颜色深度信息。通常来说,灰度图像的mode是"L" (luminance),真彩色图像的mode 是"RGB" ,而用来打印的图像的mode是"CMYK"。

如果文件不能打开,会抛出一个IOError 异常。

一旦有了一个Image 类的对象,接下来就可以使用这个类定义的方法来处理和操作图像了。比如说,显示刚才打开的文件:

切换行号显示

1 >>> im.show()

2

(show 的标准实现不是很高效,因为它先将图像保存成一个临时文件,然后调用xv 程序来显示图像。如果你没有安装xv ,它甚至不能工作。然而如果它可用,它将是非常方便的出错和测试的工具。)

接下来的内容将对库中提供的一些函数进行一个概述。

读写图像

Python Imaging Library 支持很广泛的图象文件格式。要从磁盘上读取文件,使用Image 模块提供的open 函数。你不必了解你要打开的文件的格式,库会自动根据文件的内容来确定图像的格式。

要保存文件,使用Image 类的save 方法。保存文件时,文件名就变得非常重要了。除非你指定了格式,否则库会根据文件扩展名来决定使用哪种格式存储。

将文件转换成JPEG

1 import os, sys

2 import Image

3

4 for infile in sys.argv[1:]:

5 f, e = os.path.splitext(infile)

6 outfile = f + ".jpg"

7 if infile != outfile:

8 try:

9 Image.open(infile).save(outfile)

10 except IOError:

11 print"cannot convert", infile

12

save 方法可以带第二个参数,用来显式指定要保存的文件的格式。如果要使用非标准的扩展名,就必须这样指定文件格式:

创建JPEG 缩略图

切换行号显示

1 import os, sys

2 import Image

3

4 size = 128, 128

5

6 for infile in sys.argv[1:]:

7 outfile = os.path.splitext(infile)[0] + ".thumbnail"

8 if infile != outfile:

9 try:

10 im = Image.open(infile)

11 im.thumbnail(size)

12 im.save(outfile, "JPEG")

13 except IOError:

14 print"cannot create thumbnail for", infile

15

有一点非常重要的需要注意的是,除非到了迫不得已的时候,库不会装载或者解码原始的点阵数据。当打开一个文件的时候,库会读取文件头以获得文件格式、颜色模式、图像大小等属性,但是文件剩余的部分不会马上处理。

这意味着,文件打开操作是很快的,它与文件的大小、压缩的类型没有关系。这里是一个快速识别一系列图像文件的简单例子:

识别图像文件

1 import sys

2 import Image

3

4 for infile in sys.argv[1:]:

5 try:

6 im = Image.open(infile)

7 print infile, im.format, "%dx%d" % im.size, im.mode

8 except IOError:

9 pass

10

裁剪、粘贴和合并图像

Image 类提供一些对图像中的某一区域进行处理的方法。要从图像中提取一块子矩形区域,使用crop 方法。

从图像中拷贝一块子矩形区域 ===

切换行号显示

1 box = (100, 100, 400, 400)

2 region = im.crop(box)

3

区域由一个4元组定义,表示为坐标是(left, upper, right, lower)。Python Imaging Library 使用左上角为(0, 0)的坐标系统。同时要注意,这些坐标指向像素之间的位置,因此上述例子中描述的区域的大小为300x300像素。

区域图像能够经过某些特定的处理并粘回原处。

处理一块子矩形区域,并粘回原处

切换行号显示

1 region = region.transpose(Image.ROTATE_180)

2 im.paste(region, box)

3

当把区域粘回图像时,指定的区域大小必须和区域图像的大小相同。此外,区域不能超出图像的边界。然而,原始图像的模式和区域图像的模式不必相同。如果不相同,区域图像的模式会在粘贴前被自动转换(细节请查看后面有关颜色变换的章节)。

这里有另一个例子:

滚动一幅图像

切换行号显示

1 def roll(image, delta):

2 "Roll an image sideways"

3

4 xsize, ysize = image.size

5

6 delta = delta % xsize

7 if delta == 0: return image

8

9 part1 = image.crop((0, 0, delta, ysize))

10 part2 = image.crop((delta, 0, xsize, ysize))

11 image.paste(part2, (0, 0, xsize-delta, ysize))

12 image.paste(part1, (xsize-delta, 0, xsize, ysize))

13

14 return image

15

更高级的技巧是,paste方法可以带一个透明掩模作为可选参数。在这个掩模中,像素值255 代表被粘贴的图像在那个位置上是不透明的。(就是说,此处显示被粘贴的图像上的值。)像素值0 表示被粘贴的图像是完全透明的。在它们之间的值表示不同程度的透明度。

Python Imaging Library 还允许对一幅多通道图像(比如RGB图像)的单个通道进行操作。split方法能够创建一组新的图像,每一幅都是原来多通道图像的一个通道。merge函数以一个模式和一组图像的元组为参数,把这些图像组成一幅新图像。下面的例子实现交换一幅RGB图像的三个通道:

分离与合并通道

切换行号显示

1 r, g, b = im.split()

2 im = Image.merge("RGB", (b, g, r))

3

几何变换

Image 类包含resize 和rotate 方法来缩放和旋转图像。前者带一个tuple类型的参数来表示新的图像大小,后者带一个逆时针旋转的角度值作为参数。

简单的几何变换

切换行号显示

1 out = im.resize((128, 128))

2 out = im.rotate(45) # degrees counter-clockwise

3

如果要将图像旋转90度的整数倍,可以使用rotate 或者transpose 方法。后者还可以用来水平或者垂直镜像一幅图像。

transpose图像

切换行号显示

1 out = im.transpose(Image.FLIP_LEFT_RIGHT)

2 out = im.transpose(Image.FLIP_TOP_BOTTOM)

3 out = im.transpose(Image.ROTATE_90)

4 out = im.transpose(Image.ROTATE_180)

5 out = im.transpose(Image.ROTATE_270)

6

There's no difference in performance or result between transpose(ROTATE) and corresponding rotate operations.

一个更通用的变换方法是transform,在参考手册中有对它的详细叙述。

颜色变换

Python Imaging Library提供convert函数,可以将图像在不同的像素格式间转换。

转换图像颜色模式

切换行号显示

1 im = Image.open("lena.ppm").convert("L")

2

库支持在所有支持的颜色模式和"L"以及"RGB"之间的直接转换。其他颜色模式之间的转换要借助于中间图像模式(通常是"RGB" 模式)。

图像增强

Python Imaging Library提供一系列的函数和模块来进行图像增强。

滤波器

ImageFilter 模块中包含一些预定义的增强滤波器,用filter 方法来使用滤波器。

使用滤波器

切换行号显示

1 import ImageFilter

2 out = im.filter(ImageFilter.DETAIL)

3

点操作

point 方法可以对图像的像素值进行变换(比如对比度变换)。在大多数场合,使用函数对象(带一个参数)作为参数传递给point方法。每一个像素使用这个函数对象进行变换:

使用点变换

切换行号显示

1 # multiply each pixel by 1.2

2 out = im.point(lambda i: i * 1.2)

3

用上面的技巧,你可以对图像用任何简单的表达式进行变换。你还可以结合使用point 和paste 方法来有选择的改变一幅图像:

处理单个通道

切换行号显示

1 # split the image into individual bands

2 source = im.split()

3

4 R, G, B = 0, 1, 2

5

6 # select regions where red is less than 100

7 mask = source[R].point(lambda i: i < 100and255)

8

9 # process the green band

10 out = source[G].point(lambda i: i * 0.7)

11

12 # paste the processed band back, but only where red was < 100

13 source[G].paste(out, None, mask)

14

15 # build a new multiband image

16 im = Image.merge(im.mode, source)

17

注意用来创建mask的语法:

切换行号显示

1 imout = im.point(lambda i: expression and255)

2

Python 只计算一个逻辑表达式的一部分,只要能确定表达式的结果其他部分就不进行计算了,并把最后计算得到的值作为表达式的值返回。因此,如果上述expression是false(0),Python就不会检查第二个参数,因此返回0,否则返回255。

增强

对于更多更高级的图像增强,可以使用ImageEnhance 模块。一旦从图像上创建了增强对象,你就可以尝试采用各种不同的参数进行快速的增强处理了。

你能通过这样的方法来调整图像的对比度、亮度、色彩平衡和锐度。

增强图像

切换行号显示

1 import ImageEnhance

2

3 enh = ImageEnhance.Contrast(im)

4 enh.enhance(1.3).show("30% more contrast")

5

图像序列

Python Imaging Library 包含对于图像序列(也称作动画格式)的基本支持。支持的序列格式包括FLI/FLC, GIF, 和一些试验性的格式。TIFF 文件也能包含超过一帧的图像。

当你打开一个序列文件时,PIL 会自动加载序列中的第一帧。你可以使用seek 和tell 方法在不同帧之间移动:

读取图像序列

切换行号显示

1 import Image

2

3 im = Image.open("animation.gif")

4 im.seek(1) # skip to the second frame

5

6 try:

7 while1:

8 im.seek(im.tell()+1)

9 # do something to im

10 except EOFError:

11 pass# end of sequence

12

正如这个例子所示,当序列结束时,你会得到一个EOFError 异常。

注意,当前版本库的绝大多数驱动只允许你移动到下一帧(如上面例子所示)。如果要回到文件的开头,你可能必须重新打开它。

下面的迭代类让你能够使用for循环来迭代图像序列:

一个序列迭代类

切换行号显示

1 class ImageSequence:

2 def __init__(self, im):

3 self.im = im

4 def __getitem__(self, ix):

5 try:

6 if ix:

7 self.im.seek(ix)

8 return self.im

9 except EOFError:

10 raise IndexError # end of sequence

11

12 for frame in ImageSequence(im):

13 # ...do something to frame...

14

Postscript格式打印

Python Imaging Library提供将图像、文字和图形输出到Postscript打印机的功能。这是一个简单的例子:

Drawing Postscript

切换行号显示

1 import Image

2 import PSDraw

3

4 im = Image.open("lena.ppm")

5 title = "lena"

6 box = (1*72, 2*72, 7*72, 10*72) # in points

7

8 ps = PSDraw.PSDraw() # default is sys.stdout

9 ps.begin_document(title)

10

11 # draw the image (75 dpi)

12 ps.image(box, im, 75)

13 ps.rectangle(box)

14

15 # draw centered title

16 ps.setfont("HelveticaNarrow-Bold", 36)

17 w, h, b = ps.textsize(title)

18 ps.text((4*72-w/2, 1*72-h), title)

19

20 ps.end_document()

21

更多关于读取图像

前面叙述过,Image模块的open函数用来打开一个图像文件。在大多数情况,你只用简单的把文件名传给它就可以了:

切换行号显示

1 im = Image.open("lena.ppm")

2

如果一切正常,结果是一个Image 对象。否则,会抛出一个IOError 异常。你可以使用一个类似文件的对象来代替文件名。这个对象必须实现read、seek 和tell 方法,并以二进制方式打开。从一个打开的文件读取

切换行号显示

1 fp = open("lena.ppm", "rb")

2 im = Image.open(fp)

3

要从字符串数据中读取一幅图像,可以使用StringIO 类:从一个字符串读取

切换行号显示

1 import StringIO

2

3 im = Image.open(StringIO.StringIO(buffer))

4

注意库在读取图像头之前,会先移动到文件头(用seek(0))。另外,在图像数据被读取(通过load 方法)以后,seek方法也会被调用。如果图像文件被嵌在一个更大的文件里面,比如tar文件,你可以使用ContainerIO 或者TarIO 模块来访问它。从一个tar压缩文档读取

切换行号显示

1 import TarIO

2

3 fp = TarIO.TarIO("Imaging.tar", "Imaging/test/lena.ppm")

4 im = Image.open(fp)

5

控制解码器

一些解码器允许你在从文件读取图像的同时对图像进行操作。这个特性常常被用来在创建缩略图(创建缩略图的速度通常比缩略图的质量更重要)或者打印到一个黑白激光打印机(只需要图像的灰度信息)时加速图像的解码。

draft 方法能够操作一个没有被载入数据的图像对象,使得它能够尽可能与需要的模式和大小相匹配。这通过重新配置图像解码器来实现。以草稿方式读取

切换行号显示

1 im = Image.open(file)

2 print"original =", im.mode, im.size

3

4 im.draft("L", (100, 100))

5 print"draft =", im.mode, im.size

6

这个程序可能会打印出这样的结果:

切换行号显示

1 original = RGB (512, 512)

2 draft = L (128, 128)

3

注意,最终获得图像可能与要求的模式和大小不完全一致。如果要求生成的图像不能超过给定的大小,可以使用thumbnail方法来代替。

概念

?Python Imaging Library 处理光栅图像(raster images),即方型的像素数据。

通道

一幅图像可以有一个或者多个通道的数据构成。Python Imaging Library允许在一个图像中存储多个通道,只要这些通道的大小和颜色深度都是一样的。

要获取图像的通道数目和通道名称,可以使用

[image.htm#image-getbands-method getbands] 方法。

模式

图像的模式定义了图像的像素的类型和颜色深度。当前版本的库支持下列标准模式:

?1 (1-bit 像素, 黑白, 一个像素存储为一个字节)

?L (8-bit 像素, 黑白)

?P (8-bit 像素, 使用调色板映射到其他任一模式)

?RGB (3x8-bit 像素, 真彩色)

?RGBA (4x8-bit 像素, 带透明掩模的真彩色)

?CMYK (4x8-bit 像素, colour separation)

?YCbCr (3x8-bit 像素, colour video format)

?I (32-bit integer 像素)

?F (32-bit floating point 像素)

PIL 还支持一些特殊的模式,包括RGBX (true colour with padding)和

RGBa (true colour with premultiplied alpha)。

你可以通过[image.htm#image-mode-attribute mode]属性读取图像的模式,它是一个包含上述模式类型值的字符串。

大小

通过图像的[image.htm#image-size-attribute size]属性可以读取图像的大小信息。大小信息由一个包含水平和垂直像素数的二元组表示。

坐标系统

Python Imaging Library 使用笛卡尔像素坐标系统,原点(0,0)在图像的左上角。注意:坐标值对应像素的左上角,像素(0, 0)实际中心位于(0.5, 0.5)。

坐标通常以2元组(x, y)的形式传递给库。矩形则表示成4元组的形式,左上角为第一个。比如,覆盖整个800x600像素的矩形表示为(0, 0, 800, 600)。

调色板

调色板模式("P")使用一个彩色调色板来定义每个像素的真实颜色。

信息

你可以使用[image.htm#image-info-attribute info]属性在图像中添加辅助的信息。这是一个字典对象。

在读取和存储文件时如何处理这些信息是和文件的类型有关系的(查看[formats.htm 图像文件格式]这一章)。

滤波器

对于将多个输入像素映射到一个输出像素的几何变换操作,Python Imaging Library 提供了四种重采用滤波器。

* NEAREST

在输入图像中选择最近的点,忽略其他所有点。

* BILINEAR

在输入图像的2x2像素范围内进行线性插值。注意当前版本的PIL中,这个滤波器在下采样时使用固定的输入范围的大小。

* BICUBIC

在输入图像的4x4像素范围内进行三次插值。注意当前版本的PIL中,这个滤波器在下采样时使用固定的输入范围的大小。

* ANTIALIAS

PYTHON3中文教程

Python已经是3.1版本了,与时俱进更新教程. ?本文适合有Java编程经验的程序员快速熟悉Python ?本文程序在windows xp+python3.1a1测试通过. ?本文提到的idle指python shell,即安装python后你在菜单看到的IDLE(python gui) ?在idle里ctrl+n可以打开一个新窗口,输入源码后ctrl+s可以保存,f5运行程序. ?凡打开新窗口即指ctrl+n的操作. #打开新窗口,输入:#!/usr/bin/python #-*-coding:utf8-*-s1=input("Input your name:")print("你好,%s"%s1)''' 知识点: *input("某字符串")函数:显示"某字符串",并等待用户输入. *print()函数:如何打印. *如何应用中文 *如何用多行注释 ''' 2字符串和数字 但有趣的是,在javascript里我们会理想当然的将字符串和数字连接,因为是动态语言嘛.但在Python里有点诡异,如下: 运行这行程序会出错,提示你字符串和数字不能连接,于是只好用内置函数进行转换 #!/usr/bin/python #运行这行程序会出错,提示你字符串和数字不能连接,于是只好用内置函数进行转换a=2

b="test" c=str(a)+b d="1111" e=a+int(d)#How to print multiply values print("c is%s,e is%i"%(c,e))''' 知识点: *用int和str函数将字符串和数字进行转换 *打印以#开头,而不是习惯的// *打印多个参数的方式''' #!/usr/bin/python #-*-coding:utf8-*- #列表类似Javascript的数组,方便易用#定义元组word=['a','b','c','d','e','f','g']#如何通过索引访问元组里的元素a=word[2]print("a is:"+a) b=word[1:3]print("b is:")print(b)#index1and2elements of word.c=word[:2]print ("c is:")print(c)#index0and1elements of word.d=word[0:]print("d is:")print(d)# All elements of word.#元组可以合并e=word[:2]+word[2:]print("e is:")print(e)#All elements of word.f=word[-1]print("f is:")print(f)#The last elements of word.g=word[-4:-2]print("g is:")print(g)#index3and4elements of word.h=word[-2:]print("h is:")print(h)#The last two elements.i=word[:-2]print("i is: ")print(i)#Everything except the last two characters l=len(word)print("Length of word is:"+str(l))print("Adds new element") word.append('h')print(word)#删除元素del word[0]print(word)del word[1:3]print (word)''' 知识点: *列表长度是动态的,可任意添加删除元素. *用索引可以很方便访问元素,甚至返回一个子列表 *更多方法请参考Python的文档'''

LAMMPS手册-中文版讲解之欧阳家百创编

LAMMPS手册-中文解析 一、 欧阳家百(2021.03.07) 二、简介 本部分大至介绍了LAMMPS的一些功能和缺陷。 1.什么是LAMMPS? LAMMPS是一个经典的分子动力学代码,他可以模拟液体中的粒子,固体和汽体的系综。他可以采用不同的力场和边界条件来模拟全原子,聚合物,生物,金属,粒状和粗料化体系。LAMMPS可以计算的体系小至几个粒子,大到上百万甚至是上亿个粒子。 LAMMPS可以在单个处理器的台式机和笔记本本上运行且有较高的计算效率,但是它是专门为并行计算机设计的。他可以在任何一个按装了C++编译器和MPI的平台上运算,这其中当然包括分布式和共享式并行机和Beowulf型的集群机。 LAMMPS是一可以修改和扩展的计算程序,比如,可以加上一些新的力场,原子模型,边界条件和诊断功能等。 通常意义上来讲,LAMMPS是根据不同的边界条件和初始条件对通过短程和长程力相互作用的分子,原子和宏观粒子集合对它们的牛顿运动方程进行积分。高效率计算的LAMMPS通过采用相邻清单来跟踪他们邻近的粒子。这些清单是根据粒子间的短程互拆力的大小进行优化过的,目的是防止局部粒子密度过高。在

并行机上,LAMMPS采用的是空间分解技术来分配模拟的区域,把整个模拟空间分成较小的三维小空间,其中每一个小空间可以分配在一个处理器上。各个处理器之间相互通信并且存储每一个小空间边界上的”ghost”原子的信息。LAMMPS(并行情况)在模拟3维矩行盒子并且具有近均一密度的体系时效率最高。 2.LAMMPS的功能 总体功能: 可以串行和并行计算 分布式MPI策略 模拟空间的分解并行机制 开源 高移植性C++语言编写 MPI和单处理器串行FFT的可选性(自定义) 可以方便的为之扩展上新特征和功能 只需一个输入脚本就可运行 有定义和使用变量和方程完备语法规则 在运行过程中循环的控制都有严格的规则 只要一个输入脚本试就可以同时实现一个或多个模拟任务 粒子和模拟的类型: (atom style命令) 原子 粗粒化粒子 全原子聚合物,有机分子,蛋白质,DNA

python函数中文手册

内置函数 一,文档说明 原始文档来自于python v2.7.2 中文译文和用法尚不完全,您可以自由修改和完善, 您可以在文档结尾鸣谢添上您的名字,我们将会感谢您做的贡献! 二,函数列表 1,取绝对值 abs(x)

Return the absolute value of a number. The argument may be a plain or long integer or a floating point number. If the argument is a complex number, its magnitude is returned. 如果你不知道绝对值什么意思,那就要补一下小学数学了! 基本用法 2, all(iterable) Return True if all elements of the iterable are true (or if the iterable is empty). Equivalent to: 3. any(iterable)

Return True if any element of the iterable is true. If the iterable is empty, return False. Equivalent to: 4. basestring() This abstract type is the superclass for str and unicode. It cannot be called or instantiated, but it can be used to test whether an object is an instance of str or unicode. isinstance(obj, basestring) is equivalent to isinstance(obj, (str, unicode)). 是字符串和字符编码的超类,是抽象类型。不能被调用或者实例化。可以用来判断实例是否为字符串或者字符编码。 方法: 5.二进制转换 bin(x) Convert an integer number to a binary string. The result is a valid Python expression. If x is not a Python int object, it has to define an __index__() method that returns an integer.

python解释器内建函数帮助文档

Python解释器有很多内建函数。下面是以字母顺序列出 __import__( name[, globals[, locals[, fromlist[, level]]]]) 被import语句调用的函数。它的存在主要是为了你可以用另外一个有兼容接口的函数来改变import 语句的语义. 为什么和怎么做的例子, 标准库模块ihooks和rexec. 也可以查看imp, 它定义了有用的操作,你可以创建你自己的__import__()函数. 例如, 语句"import spam" 结果对应下面的调用: __import__('spam', globals(), locals(), [], -1); 语句"from spam.ham import eggs" 结果对应调用"__import__('spam.ham', globals(), locals(), ['eggs'], -1)". 注意即使locals()和['eggs']作为参数传递, __import__() 函数不会设置局部变量eggs; import语句后面的代码完成这项功能的. (实事上, 标准的执行根本没有使用局部参数, 仅仅使用globals决定import语句声明package的上下文.) 当name变量是package.module的形式, 正常讲, 将返回顶层包(第一个点左边的部分), 而不是名为name的模块. 然而, 当指定一个非空的formlist参数,将返回名为name的模块. 这样做是为了兼容为不同种类的import语句产生的字节码; 当使用"import spam.ham.eggs", 顶层包spam 必须在导入的空间中, 但是当使用"from spam.ham import eggs", 必须使用spam.ham子包来查找eggs变量. 作为这种行为的工作区间, 使用getattr()提取需要的组件. 例如, 你可以定义下面: def my_import(name): mod = __import__(name) components = name.split('.') for comp in components[1:]: mod = getattr(mod, comp) return mod level指定了是否使用相对或绝对导入. 默认是-1将使用将尝试使用相对或绝对导入. 0 仅使用绝对导入.正数意味着相对查找模块文件夹的level层父文件夹中调用__import__。 abs( x) 返回一个数的绝对值。参数也许是一个普通或长整型,或者一个浮点数。如果参数是一个复数,返回它的积。 all( iterable) 如果迭代的所有元素都是真就返回真。 def all(iterable): for element in iterable: if not element: return False return True

makefile 中文手册 第七章 _ Makefile的条件执行

第七章:Makefile的条件执行 条件语句可以根据一个变量的值来控制make执行或者忽略Makefile的特定部分。条件语句可以是两个不同变量、或者变量和常量值的比较。要注意的是:条件语句只能用于控制make实际执行的makefile文件部分,它不能控制规则的shell命令执行过程。Makefile中使用条件控制可以做到处理的灵活性和高效性。 7.1一个例子 首先我们来看一个使用条件判断的Makefile例子;对变量“CC”进行判断,其值如果是“gcc”那么在程序连接时使用库“libgnu.so”或者“libgnu.a”,否则不链接任何库。Makefile中的条件判断部分如下:…… libs_for_gcc = -lgnu normal_libs = …… foo: $(objects) ifeq ($(CC),gcc) $(CC) -o foo $(objects) $(libs_for_gcc) else $(CC) -o foo $(objects) $(normal_libs) endif …… 例子中,条件语句中使用到了三个关键字:“ifeq”、“else”和“endif”。其中: 1.“ifeq”表示条件语句的开始,并指定了一个比较条件(相等)。之后是用圆括号括包围的、使用逗 号“,”分割的两个参数,和关键字“ifeq”用空格分开。参数中的变量引用在进行变量值比较时被展开。“ifeq”之后就是当条件满足make需要执行的,条件不满足时忽略。 2.“else”之后就是当条件不满足时的执行部分。不是所有的条件语句都需要此部分。 3.“endif”表示一个条件语句的结束,任何一个条件表达式都必须以“endif”结束。 通过上边的例子我们可以了解到。Makefile中,条件表达式工作于文本级别(条件判断处理为文本级别的处理过程),条件的解析是由make来完成的。make是在读取并解析Makefile时根据条件表达式忽略条件表达式中的某一个文本行,解析完成后保留的只有表达式满足条件所需要执行的文本行。上例,make处理条件的过程: 当变量“CC”的值为“gcc”时,整个条件表达式等效于: foo: $(objects) $(CC) -o foo $(objects) $(libs_for_gcc) 当变量“CC”值不等于“gcc”时等效于: foo: $(objects) $(CC) -o foo $(objects) $(normal_libs) 上面的例子,一种更简洁实现方式:

Apache_Ant_中文手册

Apache Ant 中文手册 引言 Apache Ant是一个基于Java的编译工具。它从功能上类似于make,但它以克服了make的缺点。 为什么在make, gnumake, nmake, jam这些编译工具后,还要产生一个Ant呢?因为这些编译工具都有一定的限制。Ant的最初开发者在开发跨平台的应用时,发现以前的那些开发工具都有一定的限制。例如make工具,它是基于Shell的,它判断一系列的条件,并像在shell下面那样执行编译命令,这样做的好处的:针对特定的平台(如unix),可以容易的利用这些工具做编译;但同时,这也意味着,你的编译限制在固定的操作系统下,如只能用于unix。 同时,Make文件也有一些先天的缺陷。好多人都会遇到恐怖的tab问题。Ant 的最初开发者多次说“我的命令不能执行因为我在tab前面加了一个空格!”。一些工具如Jam一定程序上解决了这个问题,但仍有其它的格式问题。 Ant与从基于命令的那些扩展开来的那些工具不同,Ant是由java类扩展的。不用编写shell命令,而是配置基于XML的文件,形成多个任务的目标配置树。每一个任务都是通过一个实现了一个规定接口的java类来运行的。 ant缺少了一些直接执行shell命令的能力,如find . -name foo -exec rm {},但它给用户提供了跨平台的能力,可以在任何地方工作。实际上,Ant也提供了命令execute用来执行shell命令,这就是它的任务,它允许执行基于操作系统的命令。

安装Ant 下载Ant。Ant有两个版本,二进制版本和原代码版本。 要编译和使用Ant,你必须要有一个兼容JAXP的XML解析器。 二进制版本中自己带有了最新的Apache Xerces2 XML解析器。如果你想用不同的兼容JAXP的解析器,你可以移去Ant库目录下的xercesImpl.jar和 xml-apis.jar两个文件。你可以要用的解析器放到Ant的库目录下,也可以把jars 文件放到系统的类路径中。 在Ant的当前版本中,还需要安装JDK。下面的二进制片版本的安装后的目录结构。 ant 安装目录 ant/bin 包含了运行脚本 ant/lib ant运行所需的类库 ant/docs 文档 ant/etc 一些配置,如何通过任务的xml输出建立详细的报告, 移动编译后的文件,忽略错误警告 在运行前还要做一些设置: 1)在path路径中加入ant/bin目录; 2)设置ANT_HOME为安装目录; 3)通常还要设置JAVA_HOME为JAVA的安装路径。 例如下: set ANT_HOME=c:\ant set JAVA_HOME=c:\jdk1.5.1 set PATH=%PATH%;%ANT_HOME%\bin

PythonImagingLibrary中文手册p

这是P I L的官方手册,2005年5月6日本中文手册来你可以在PythonWare library找到改文档其它格式的版本以及先前的版本。 原版出处:htt 目录 1.Python Imaging Library 中文手册 2.第一部分:介绍 1.概览 1.介绍 2.图像归档处理 3.图像显示 4.图像处理 2.入门导引 1.使用Image 类 2.读写图像 3.裁剪、粘贴和合并图像 4.滚动一幅图像 5.分离与合并通道 3.几何变换 1.简单的几何变换 2.transpose图像 4.颜色变换 1.转换图像颜色模式 5.图像增强 1.滤波器 1.使用滤波器 2.点操作 1.使用点变换 2.处理单个通道 3.增强 1.增强图像 6.图像序列 1.读取图像序列 2.一个序列迭代类 7.Postscript格式打印 1.Drawing Postscript 8.更多关于读取图像 1.控制解码器 3.概念 1.通道 2.模式 3.大小 4.坐标系统

5.调色板 6.信息 7.滤波器 4.第二部分:模块手册 5.Image 模块 1.例子 2.函数 1.new 2.open 3.blend https://www.sodocs.net/doc/3f7231465.html,posite 5.eval 6.frombuffer 7.fromstring 8.merge 3.方法 1.convert 2.copy 3.crop 4.draft 5.filter 6.fromstring 7.getbands 8.getbbox 9.getdata 10.getextrema 11.getpixel 12.histogram 13.load 14.offset 15.paste 16.point 17.putalpha 18.putdata 19.putpalette 20.putpixel 21.resize 22.rotate 23.save 24.seek 25.show 26.split 27.tell 28.thumbnail 29.tobitmap 30.tostring

titlesec宏包使用手册

titlesec&titletoc中文文档 张海军编译 makeday1984@https://www.sodocs.net/doc/3f7231465.html, 2009年10月 目录 1简介,1 2titlesec基本功能,2 2.1.格式,2.—2.2.间隔, 3.—2.3.工具,3. 3titlesec用法进阶,3 3.1.标题格式,3.—3.2.标题间距, 4.—3.3.与间隔相关的工具, 5.—3.4.标题 填充,5.—3.5.页面类型,6.—3.6.断行,6. 4titletoc部分,6 4.1.titletoc快速上手,6. 1简介 The titlesec and titletoc宏包是用来改变L A T E X中默认标题和目录样式的,可以提供当前L A T E X中没有的功能。Piet van Oostrum写的fancyhdr宏包、Rowland McDonnell的sectsty宏包以及Peter Wilson的tocloft宏包用法更容易些;如果希望用法简单的朋友,可以考虑使用它们。 要想正确使用titlesec宏包,首先要明白L A T E X中标题的构成,一个完整的标题是由标签+间隔+标题内容构成的。比如: 1.这是一个标题,此标题中 1.就是这个标题的标签,这是一个标签是此标题的内容,它们之间的间距就是间隔了。 1

2titlesec基本功能 改变标题样式最容易的方法就是用几向个命令和一系列选项。如果你感觉用这种方法已经能满足你的需求,就不要读除本节之外的其它章节了1。 2.1格式 格式里用三组选项来控制字体的簇、大小以及对齐方法。没有必要设置每一个选项,因为有些选项已经有默认值了。 rm s f t t md b f up i t s l s c 用来控制字体的族和形状2,默认是bf,详情见表1。 项目意义备注(相当于) rm roman字体\textrm{...} sf sans serif字体\textsf{...} tt typewriter字体\texttt{...} md mdseries(中等粗体)\textmd{...} bf bfseries(粗体)\textbf{...} up直立字体\textup{...} it italic字体\textit{...} sl slanted字体\textsl{...} sc小号大写字母\textsc{...} 表1:字体族、形状选项 bf和md属于控制字体形状,其余均是切换字体族的。 b i g medium s m a l l t i n y(大、中、小、很小) 用来标题字体的大小,默认是big。 1这句话是宏包作者说的,不过我感觉大多情况下,是不能满足需要的,特别是中文排版,英文 可能会好些! 2L A T E X中的字体有5种属性:编码、族、形状、系列和尺寸。 2

python常用函数年初大总结

1.常用内置函数:(不用import就可以直接使用) help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像函数一样调用 repr(obj) 得到obj的表示字符串,可以利用这个字符串eval重建该对象的一个拷贝 eval_r(str) 表示合法的python表达式,返回这个表达式 dir(obj) 查看obj的name space中可见的name hasattr(obj,name) 查看一个obj的name space中是否有name getattr(obj,name) 得到一个obj的name space中的一个name setattr(obj,name,value) 为一个obj的name space中的一个name指向vale这个object delattr(obj,name) 从obj的name space中删除一个name vars(obj) 返回一个object的name space。用dictionary表示 locals() 返回一个局部name space,用dictionary表示 globals() 返回一个全局name space,用dictionary表示 type(obj) 查看一个obj的类型 isinstance(obj,cls) 查看obj是不是cls的instance issubclass(subcls,supcls) 查看subcls是不是supcls的子类 类型转换函数 chr(i) 把一个ASCII数值,变成字符 ord(i) 把一个字符或者unicode字符,变成ASCII数值 oct(x) 把整数x变成八进制表示的字符串 hex(x) 把整数x变成十六进制表示的字符串

Makefile超强经典教程

Makefile经典教程 0 Makefile概述 (2) 0.1关于程序的编译和链接 (2) 1 Makefile介绍 (3) 1.1 Makefile的规则 (4) 1.2一个示例 (4) 1.3 make是如何工作的 (6) 1.4 makefile中使用变量 (7) 1.5让make自动推导 (8) 1.6另类风格的makefile (9) 1.7清空目标文件的规则 (10) 2 Makefile总述 (11) 2.1 Makefile里有什么? (11) 2.2Makefile的文件名 (12) 2.3引用其它的Makefile (12) 2.4环境变量MAKEFILES (13) 2.5 make的工作方式 (13) 3 Makefile书写规则 (14) 3.1规则举例 (14) 3.2规则的语法 (14) 3.3在规则中使用通配符 (15) 3.4文件搜寻 (16) 3.5伪目标 (17) 3.6多目标 (19) 3.7静态模式 (20) 3.8自动生成依赖性 (22) 4 Makefile书写命令 (24) 4.1显示命令 (24) 4.2命令执行 (25) 4.3命令出错 (25) 4.4嵌套执行make (26) 4.5定义命令包 (29) 1

0 Makefile概述 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。 因为,makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。 makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法。 现在讲述如何写makefile的文章比较少,这是我想写这篇文章的原因。当然,不同产商的make各不相同,也有不同的语法,但其本质都是在“文件依赖性”上做文章,这里,我仅对GNU的make进行讲述,我的环境是RedHat Linux 8.0,make的版本是3.80。必竟,这个make是应用最为广泛的,也是用得最多的。而且其还是最遵循于IEEE 1003.2-1992 标准的(POSIX.2)。 在这篇文档中,将以C/C++的源码作为我们基础,所以必然涉及一些关于C/C++的编译的知识,相关于这方面的内容,还请各位查看相关的编译器的文档。这里所默认的编译器是UNIX下的GCC和CC。 0.1关于程序的编译和链接 在此,我想多说关于程序编译的一些规范和方法,一般来说,无论是C、C++、还是pas,首先要把源文件编译成中间代码文件,在Windows下也就是.obj 文件,UNIX

keil c51 详细中文手册

Keil C51使用详解 V1.0 第一章 Keil C51开发系统基本知识 (6) 第一节系统概述 (6) 第二节Keil C51单片机软件开发系统的整体结构 (6)

1. C51 for Dos 7 2. C51 for Windows的安装及注意事项: (7) 第四节Keil C51工具包各部分功能及使用简介 (7) 1. C51与A51. 7 2. L51和BL51. 8 3. DScope51,Tscope51及Monitor51. 8 4. Ishell及uVision. 9 第二章 Keil C51软件使用详解 (10) 第一节Keil C51编译器的控制指令 (10) 1. 源文件控制类 (10) 2. 目标文件(Object)控制类: (10) 3. 列表文件(listing)控制类: (10) 第二节dScope51的使用 (11) 1. dScope51 for Dos 11 2. dScope for Windows 12 第三节Monitor51及其使用 (13) 1. Monitor51对硬件的要求 (13) 2. Mon51的使用 (13) 3. MON51的配置 (13) 4. 串口连接图: (13) 5. MON51命令及使用 (14) 第四节集成开发环境(IDE)的使用 (14) 1. Ishell for Dos的使用 (14) 2. uVision for windows的使用 (15) 第三章 Keil C51 vs 标准C.. 15

第二节内存区域(Memory Areas): (16) 1. Pragram Area: (16) 2. Internal Data Memory: 16 3. External Data Memory. 16 4. Speciac Function Register Memory. 16 第三节存储模式 (16) 1. Small模式 (16) 2. Compact模式 (17) 3. large模式 (17) 第四节存储类型声明 (17) 第五节变量或数据类型 (17) 第六节位变量与声明 (17) 1. bit型变量 (17) 2. 可位寻址区说明20H-2FH.. 18 第七节Keil C51指针 (18) 1. 一般指针 (18) 2. 存储器指针 (18) 3. 指针转换 (18) 第八节Keil C51函数 (19) 1. 中断函数声明: (19) 2. 通用存储工作区 (19) 3. 选通用存储工作区由using x声明,见上例。 (19) 4. 指定存储模式 (19) 5. #pragma disable. 19 6. 递归或可重入函数指定 (19)

Python学习手册

Python学习手册 2014/01/16 第一部分:使用入门

1Python安装与测试 1.1下载地址 1.2安装注意 选择添加系统环境变量 1.3测试 Win+R>cmd>python 2如何运行程序 2.1基本语句 2**8表示2^8; Windows下可以使用Ctrl+Z来推出Python。 *对于数字来说,表示相乘,对于字符来说表示重复。不懂得话直接在交互模式下尝试。 交互提示模式也是一个测试程组件的地方:引入一个预编码的模块,测试里面的函数,获得当前工作目录的名称。 注意缩进(4个空格); 回车(Enter)两次,多行语句才会执行。 执行python,注意文件后缀为.py。

2.2UNIX可执行脚本(#!) 他们的第一行是特定的。脚本的第一行往往以字符#!开始(常叫做“hash bang”),其后紧跟着机器Python解释器的路径。 他们往往都拥有可执行的权限。Chmod+x 来修改可执行权限。 注意没有后缀名。Unix下运行命令为: % brain 运行结果: The Bright Side of Life… 2.3Unix env查找技巧 避免硬编码Python解释器的路径,env程序可以通过系统的搜索路径的设置定位Python解释器。这种方式比中的方法更常用。 2.4Windows下input的技巧 在windows系统下,双击后,会一闪而过,这时候就可以使用input()。一般来说input读取标准输入的下一行,如果还没有得到输入,就一直等待输入。从而达到了让脚本暂停的效果。 运行结果: 缺陷:看不到错误信息。 2.5模块导入和重载 每一个以扩展名py结尾的Python源代码文件都是一个模块。 其他模块可以通过导入这个模块读取这个模块的基础知识。 如上import可以运行,但只是在每次会话的第一次运行,在第一次导入之后,其他的导入都不会再工作。(这是有意设计的结果,导入是一个开销很大的操作) 2.6模块的显要特性:属性 作为替代方案,可以通过这样的语句从模块语句中获得变量名:

LAMMPS手册中文讲解

LAMMPS手册-中文解析 一、简介 本部分大至介绍了LAMMPS的一些功能和缺陷。 1.什么是LAMMPS? LAMMPS是一个经典的分子动力学代码,他可以模拟液体中的粒子,固体和汽体的系综。他可以采用不同的力场和边界条件来模拟全原子,聚合物,生物,金属,粒状和粗料化体系。LAMMPS可以计算的体系小至几个粒子,大到上百万甚至是上亿个粒子。 LAMMPS可以在单个处理器的台式机和笔记本本上运行且有较高的计算效率,但是它是专门为并行计算机设计的。他可以在任何一个按装了C++编译器和MPI的平台上运算,这其中当然包括分布式和共享式并行机和Beowulf型的集群机。 LAMMPS是一可以修改和扩展的计算程序,比如,可以加上一些新的力场,原子模型,边界条件和诊断功能等。 通常意义上来讲,LAMMPS是根据不同的边界条件和初始条件对通过短程和长程力相互作用的分子,原子和宏观粒子集合对它们的牛顿运动方程进行积分。高效率计算的LAMMPS通过采用相邻清单来跟踪他们邻近的粒子。这些清单是根据粒子间的短程互拆力的大小进行优化过的,目的是防止局部粒子密度过高。在并行机上,LAMMPS采用的是空间分解技术来分配模拟的区域,把整个模拟空间分成较小的三维小空间,其中每一个小空间可以分配在一个处理器上。各个处理器之间相互通信并且存储每一个小空间边界上的”ghost”原子的信息。LAMMPS(并行情况)在模拟3维矩行盒子并且具有近均一密度的体系时效率最高。 2.LAMMPS的功能 总体功能:

可以串行和并行计算 分布式MPI策略 模拟空间的分解并行机制 开源 高移植性C++语言编写 MPI和单处理器串行FFT的可选性(自定义) 可以方便的为之扩展上新特征和功能 只需一个输入脚本就可运行 有定义和使用变量和方程完备语法规则 在运行过程中循环的控制都有严格的规则 只要一个输入脚本试就可以同时实现一个或多个模拟任务粒子和模拟的类型: (atom style命令) 原子 粗粒化粒子 全原子聚合物,有机分子,蛋白质,DNA 联合原子聚合物或有机分子 金属 粒子材料 粗粒化介观模型 延伸球形与椭圆形粒子 点偶极粒子

python-ctypes模块中文帮助文档

内容: .加载动态链接库 .从已加载的dll中引用函数 .调用函数1 .基本的数据类型 .调用函数2 .用自己的数据类型调用函数 .确认需要的参数类型(函数原型) .返回值 .传递指针 .结构和联合 .结构或联合的对齐方式和字节的顺序 .结构和联合中的位 .数组 .指针 .类型转换 .未完成的类型 .回调函数 .访问dlls导出的值 .可变长度的数据类型 .bugs 将要做的和没有做的事情 注意:本文中的代码例子使用doctest确保他们能够实际工作。一些代码例子在linux和windows以及苹果机上执行有一定的差别 注意:一些代码引用了ctypes的c_int类型。它是c_long在32位机子上的别名,你不应该变得迷惑,如果你期望 的是c_int类型,实事上打印的是c_long,它们实事上是相同的类型。 加载动态链接库 ctypes加载动态链接库,导出cdll和在windows上同样也导出windll和oledll对象。 加载动态链接库后,你可以像使用对象的属性一样使用它们。cdll加载使用标准的cdecl调用约定的链接库, 而windll库使用stdcall调用约定,oledll也使用stdcall调用约定,同时确保函数返回一个windows HRESULT错误代码。这错误 代码自动的升为WindowsError Python exceptions,当这些函数调用失败时。 这有一些windows例子,msvcrt是微软的c标准库,包含大部分的标准c函数,同时使用cdecl调用约定。 注:cdecl和stdcall的区别请见https://www.sodocs.net/doc/3f7231465.html,/log-20.html >>> from ctypes import * >>> print windll.kernel32 # doctest: +WINDOWS

Wind量化平台-用户手册(Python)

——中国金融数据及工具首席服务商 9311509 Wind Python数据及交易接口 Version 1.1 修订时间:2014.02.12 上海万得信息技术股份有限公司 Shanghai Wind Information Co., Ltd. 地址上海浦东新区福山路33号建工大厦9楼 邮编Zip 200120 电话Tel (8621)6888 2280 传真Fax (8621)6888 2281 主页 https://www.sodocs.net/doc/3f7231465.html,

版本历史

目录 1WINDPY接口说明 (1) 1.1W IND P Y接口概述 (1) 1.2W IND P Y接口安装 (2) 1.2.1WindPy对系统环境要求 (2) 1.2.2Python环境安装 (2) 1.2.3正常WindPy接口安装 (3) 1.2.4特殊安装WindPy方式 (6) 1.3接口向导界面 (6) 1.4W IND P Y获取帮助途径 (7) 1.4.1本用户手册 (7) 1.4.2量化交易群和R语言交流群 (7) 1.5W IND P Y接口相关规范 (1) 1.5.1以下所有命令都有如下假设 (1) 1.5.2命令区分大小写,且“w.”不能省略 (1) 1.5.3中文以及单字节码和双字节码的问题 (1) 1.5.4品种、指标、参数等引号内的部分不区分大小写 (1) 1.5.5参数支持list输入 (1) 1.5.6时间、日期支持Python语言的时间、日期格式 (2) 1.5.7参数中有缺省值的可以不用输入 (2) 1.5.8可以带参数名输入 (2)

1.5.9Showblank参数 (3) 1.5.10交易接口中Showfields参数 (3) 1.5.11ErrorCode定义 (3) 2WIND PY插件命令说明 (1) 2.1FROM W IND P Y IMPORT *:装载W IND P Y包 (1) 2.2W.START:启动W IND P Y (1) 2.3W.STOP:停止W IND P Y (2) 2.4W.ISCONNECTED:判断是否已经登录 (2) 2.5W.CANCEL R EQUEST:取消订阅 (2) 2.6W.WSD:获取历史序列数据 (3) 2.7W.WSI:获取分钟数据 (3) 2.8W.WST:获取日内TICK级别数据 (4) 2.9W.WSS:获历史截面数据 (5) 2.10W.WSQ:获取和订阅实时行情数据 (5) 2.11W.WSET:获取板块、指数等成分数据 (6) 2.12W.WEQS:获取条件选股结果 (7) 2.13W.WPF:获取资产管理、组合管理数据 (7) 2.14交易相关函数 (8) 2.14.1w.tlogon交易登录 (8) 2.14.2w.tlogout交易登出 (9) 2.14.3w.torder委托下单 (10) 2.14.4w.tcancel撤销委托 (11)

makefile 中文手册 第六章 _ Makefile中的变量

第六章:Makefile中的变量 在Makefile中,变量是一个名字(像是C语言中的宏),代表一个文本字符串(变量的值)。在Makefile的目标、依赖、命令中引用变量的地方,变量会被它的值所取代(与C语言中宏引用的方式相同,因此其他版本的make也把变量称之为“宏”)。在Makefile中变量有以下几个特征: 1.Makefile中变量和函数的展开(除规则命令行中的变量和函数以外),是在make读取makefile文件时 进行的,这里的变量包括了使用“=”定义和使用指示符“define”定义的。 2.变量可以用来代表一个文件名列表、编译选项列表、程序运行的选项参数列表、搜索源文件的目录列 表、编译输出的目录列表和所有我们能够想到的事物。 3.变量名是不包括“:”、“#”、“=”、前置空白和尾空白的任何字符串。需要注意的是,尽管在GNU make中没有对变量的命名有其它的限制,但定义一个包含除字母、数字和下划线以外的变量的做法也是不可取的,因为除字母、数字和下划线以外的其它字符可能会在make的后续版本中被赋予特殊含义,并且这样命名的变量对于一些shell来说是不能被作为环境变量来使用的。 4.变量名是大小写敏感的。变量“foo”、“Foo”和“FOO”指的是三个不同的变量。Makefile传统做 法是变量名是全采用大写的方式。推荐的做法是在对于内部定义定义的一般变量(例如:目标文件列表objects)使用小写方式,而对于一些参数列表(例如:编译选项CFLAGS)采用大写方式,但这并不是要求的。但需要强调一点:对于一个工程,所有Makefile中的变量命名应保持一种风格,否则会显得你是一个蹩脚的程序员(就像代码的变量命名风格一样)。 5.另外有一些变量名只包含了一个或者很少的几个特殊的字符(符号)。称它们为自动化变量。 像“$<”、“$@”、“$?”、“$*”等。 6.1变量的引用 当我们定义了一个变量之后,就可以在Makefile的很多地方使用这个变量。变量的引用方式 是:“$(VARIABLE_NAME)”或者“${ VARIABLE_NAME }”来引用一个变量的定义。例如:“$(foo)”或者“${foo}”就是取变量“foo”的值。美元符号“$”在Makefile中有特殊的含义,所有在命令或者文件名中使用“$”时需要用两个美元符号“$$”来表示。对一个变量的引用可以在Makefile的任何上下文中,目标、依赖、命令、绝大多数指示符和新变量的赋值中。这里有一个例子,其中变量保存了所有.o文件的列表: objects = program.o foo.o utils.o program : $(objects) cc -o program $(objects) $(objects) : defs.h 变量引用的展开过程是严格的文本替换过程,就是说变量值的字符串被精确的展开在变量被引用的地方。因此规则: foo = c prog.o : prog.$(foo) $(foo) $(foo) -$(foo) prog.$(foo) 被展开后就是:

python-os模块中文帮助文档

注此模块中关于unix中的函数大部分都被略过,翻译主要针对WINDOWS,翻译速度很快,其中很多不足之处请多多包涵。 这个模块提供了一个轻便的方法使用要依赖操作系统的功能。如何你只是想读或写文件,请使用open() ,如果你想操作文件路径,请使用os.path模块,如果你想在命令行中,读入所有文件的所有行,请使用 fileinput模块。使用tempfile模块创建临时文件和文件夹,更高级的文件和文件夹处理,请使用shutil模块。 os.error 内建OSError exception的别名。 https://www.sodocs.net/doc/3f7231465.html, 导入依赖操作系统模块的名字。下面是目前被注册的名字:'posix', 'nt', 'mac', 'os2', 'ce', 'java', 'riscos'. 下面的function和data项是和当前的进程和用户有关 os.environ 一个mapping对象表示环境。例如,environ['HOME'] ,表示的你自己home文件夹的路径(某些平台支持,windows不支持) ,它与C中的getenv("HOME")一致。 这个mapping对象在os模块第一次导入时被创建,一般在python启动时,作为site.py处理过程的一部分。在这一次之后改变environment不 影响os.environ,除非直接修改os.environ. 注:putenv()不会直接改变os.environ,所以最好是修改os.environ 注:在一些平台上,包括FreeBSD和Mac OS X,修改environ会导致内存泄露。参考putenv()的系统文档。 如果没有提供putenv(),mapping的修改版本传递给合适的创建过程函数,将导致子过程使用一个修改的environment。 如果这个平台支持unsetenv()函数,你可以删除mapping中的项目。当从os.environ使用pop()或clear()删除一个项目时,unsetenv()会自动被调用(版本2.6)。 os.chdir(path) os.fchdir(fd) os.getcwd() 这些函数在Files和Directories中。

相关主题