splitme = cols[6]
#把splitme设置为第7列的数据
splitup = list(splitme) #把splitup设置为字符串splitme中的字符列表
以上代码的第1行说明了指向数组元素的方法。数组从0索引到(n-1),这里的n是元素数目。第2行代码演示了list函数,这个函数把字符串作为参数并返回字符列表。
p = re.compile('s') #编译正则表达式对象“p”来找出空格。
在以上的语句中,我采用了正则表达式类来创建一个正则表达式对象。该对象必须用compile方法进行“编译”。该方法把一个正则表达式作为参数用于模式匹配。例子中采用的是“s”,表示空格是唯一需要找出的要素。为了匹配诸如空格、字母字符或者数字可以采用不同的表达式。
if len(splitup) > 30: #如果条目说明包含的字符数目超过30
以上语句引入了len函数。该函数以列表作为其参数并返回一个整数,表示列表中的元素数目。
for i in range(11): #从0计数到10
我发现Python创建for循环有两个很有意思的地方。首先,
for循环完全可以直接遍历列表元素。
for i in [0,1,2, 3, 4, 5, 6, 7, 8, 9, 10]
但我选择的是range函数,这就是是第2个叫人感兴趣的地方了。我发现,range函数会自动产生一个整数列表。该函数只需要1到2个参数。如果只给定一个参数n,则函数产生从0到n-1的整数列表。如果给定两个参数 (m,n)则函数产生从m到n-1的整数列表。
能遍历整个列表自然作用非凡,因为你可以通过这一方式遍历任何对象类型的列表。比方说,你可以完全可以由此利用字符串列表或者正则表达式对象列表。
m = p.match(splitup[(30 -i)]) #找出第1个空格
正则表达式类的match方法以字符或者字符串作为其参数,然后把该参数同编译的正则表达式进行比较。如果表达式匹配就返回真。
我已经提到过,Perl中循环和流程控制语言没有对应的终止。在程序清单B中你可以看到我增加了注释表示代码块的终止。
newguy = string.join(splitup,'') + ' '
#用列表产生字符串
join方法和split方法的作用正好相反,它以字符串列表或者联合的字符作为第1个参数,用分隔符作为第2个参数。为了把两个字符串连接起来还用到了加号
(+)。
程序清单C 中的部分代码同Perl版本的该脚本程序是一样的。
在if条件还没有满足的情况下则执行程序清单D中所示的else条件语句。
在程序清单E中使用了文件对象的write方法。传递给该方法的唯一参数就是将要写入文件的字符串。
以下是我们这个Python脚本所涉及到的语言要素:
Python是一种相当简单的脚本语言。要从Perl脚本转换到Python用不了6个小时即可。你可以访问python.org 网站了解更多的有关信息。其Windows版本的下载软件还包含了相应的编辑器和调试器。测试和执行代码非常简单。
欢迎评论或投稿