python作业3
2017-04-07 16:22
134 查看
1.文件比较:写一个比较两个文本文件的程序:如果不同,给出第一个不同处的行号和列号
#!/usr/bin/env python
#coding:utf-8
file1 = open("/mnt/test1","r",buffering=-1)
file2 = open("/mnt/test2","r",buffering=-1)
row = 0
for(line1,line2) in zip(file1,file2):
row +=1
if line1 == line2:
pass
else:
col = 0
print "different row:%d"%row
for(a,b) in zip (line1,line2):
if a == b:
col +=1
else:
print "different col:%d"%col
col +=1
file1.close()
file2.close()
###########补充:open()#########
作为打开文件之门的"钥匙", 内建函数 open() [以及 file() ]提供了初始化输入/输出(I/O)
操作的通用接口. open() 内建函数成功打开文件后时候会返回一个文件对象, 否则引发一个错误.
当操作失败, Python 会产生一个 IOError 异常 - 我们会在下一章讨论错误和异常的处理. 内建函
数 open() 的基本语法是:
file_object = open(file_name, access_mode='r', buffering=-1)
file_name 是包含要打开的文件名字的字符串, 它可以是相对路径或者绝对路径. 可选变量
access_mode 也是一个字符串, 代表文件打开的模式. 通常, 文件使用模式 'r', 'w', 或是 'a'
模式来打开, 分别代表读取, 写入和追加. 还有个 'U' 模式, 代表通用换行符支持(见下).
使用 'r' 或 'U' 模式打开的文件必须是已经存在的. 使用 'w' 模式打开的文件若存在则首
先清空, 然后(重新)创建. 以 'a' 模式打开的文件是为追加数据作准备的, 所有写入的数据都将
追加到文件的末尾. 即使你 seek 到了其它的地方. 如果文件不存在, 将被自动创建, 类似以 'w'
模式打开文件. 如果你是一个 C 程序员, 就会发现这些也是 C 库函数 fopen() 中使用的模式.
另外一个可选参数 buffering 用于指示访问文件所采用的缓冲方式. 其中 0 表示不缓冲, 1
表示只缓冲一行数据, 任何其它大于 1 的值代表使用给定值作为缓冲区大小. 不提供该参数或者
给定负值代表使用系统默认缓冲机制, 既对任何类电报机( tty )设备使用行缓冲, 其它设备使用正
常缓冲. 一般情况下使用系统默认方式即可.
##########zip#############
zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。
(1)如: x = [1,2,3]
y = [4,5,6]
z = [7,8,9]
xyz = zip[x,y,z]
print xyz
运行结果是:
[(1,4,7)(2,5,8)(3,6,9)] //可以看出zip函数的运作方式
(2)又如:
x = [1,2,3]
y = [4,5,6,7]
xy = zip(x,y)
print xy
运行结果是:
[(1,4)(2,5)(3,6)] //可以看出zip函数的长度处理方式
(3)zip函数只有一个参数时的运作:
x = [1,2,3]
x = zip(x)
print x
运行结果是:
[(1),(2)(3)]
(4)
z = zip()
print z
运行结果是: [] //可以看出zip函数在没有参数时的运作方式
(5)unzip 的运作:
x = [1,2,3]
y = [4,5,6]
z = [7,8,9]
xyz = zip[x,y,z]
u = zip(*xyz) //在运行zip(*xyz)之前,xyz的值是:[(1,4,7),(2,5,8),(3,6,9)]
那么,zip(*xyz)等价与 zip(1,4,7),(2,5,8),(3,6,9)
print u
运行结果是:[(1,2,3),(4,5,6),(7,8,9)]
(6)
x = [1,2,3]
r = zip(*[x]*3)
运行结果是:
[(1,1,1),(2,2,2),().3,3,3]
他的运行机制是:【x】生成一个列表的列表,他只有一个元素x,[x]*3 生成一个列表的列表,他有三个元素[x,x,x],zip(*[x]*3)就是zip(x,x,x)
2.匹配简单的以“www."开头,以”.com“序哦结尾的为恶霸域名,例如:www.yahoo.com.附加题:使你写的正则表达式还支持其他顶级域名:.edu,.net,等,如:www.ucec.edu
#!/usr/bin/env python
#coding:utf-8
file1 = open("/mnt/test1","r",buffering=-1)
file2 = open("/mnt/test2","r",buffering=-1)
row = 0
for(line1,line2) in zip(file1,file2):
row +=1
if line1 == line2:
pass
else:
col = 0
print "different row:%d"%row
for(a,b) in zip (line1,line2):
if a == b:
col +=1
else:
print "different col:%d"%col
col +=1
file1.close()
file2.close()
###########补充:open()#########
作为打开文件之门的"钥匙", 内建函数 open() [以及 file() ]提供了初始化输入/输出(I/O)
操作的通用接口. open() 内建函数成功打开文件后时候会返回一个文件对象, 否则引发一个错误.
当操作失败, Python 会产生一个 IOError 异常 - 我们会在下一章讨论错误和异常的处理. 内建函
数 open() 的基本语法是:
file_object = open(file_name, access_mode='r', buffering=-1)
file_name 是包含要打开的文件名字的字符串, 它可以是相对路径或者绝对路径. 可选变量
access_mode 也是一个字符串, 代表文件打开的模式. 通常, 文件使用模式 'r', 'w', 或是 'a'
模式来打开, 分别代表读取, 写入和追加. 还有个 'U' 模式, 代表通用换行符支持(见下).
使用 'r' 或 'U' 模式打开的文件必须是已经存在的. 使用 'w' 模式打开的文件若存在则首
先清空, 然后(重新)创建. 以 'a' 模式打开的文件是为追加数据作准备的, 所有写入的数据都将
追加到文件的末尾. 即使你 seek 到了其它的地方. 如果文件不存在, 将被自动创建, 类似以 'w'
模式打开文件. 如果你是一个 C 程序员, 就会发现这些也是 C 库函数 fopen() 中使用的模式.
另外一个可选参数 buffering 用于指示访问文件所采用的缓冲方式. 其中 0 表示不缓冲, 1
表示只缓冲一行数据, 任何其它大于 1 的值代表使用给定值作为缓冲区大小. 不提供该参数或者
给定负值代表使用系统默认缓冲机制, 既对任何类电报机( tty )设备使用行缓冲, 其它设备使用正
常缓冲. 一般情况下使用系统默认方式即可.
##########zip#############
zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。
(1)如: x = [1,2,3]
y = [4,5,6]
z = [7,8,9]
xyz = zip[x,y,z]
print xyz
运行结果是:
[(1,4,7)(2,5,8)(3,6,9)] //可以看出zip函数的运作方式
(2)又如:
x = [1,2,3]
y = [4,5,6,7]
xy = zip(x,y)
print xy
运行结果是:
[(1,4)(2,5)(3,6)] //可以看出zip函数的长度处理方式
(3)zip函数只有一个参数时的运作:
x = [1,2,3]
x = zip(x)
print x
运行结果是:
[(1),(2)(3)]
(4)
z = zip()
print z
运行结果是: [] //可以看出zip函数在没有参数时的运作方式
(5)unzip 的运作:
x = [1,2,3]
y = [4,5,6]
z = [7,8,9]
xyz = zip[x,y,z]
u = zip(*xyz) //在运行zip(*xyz)之前,xyz的值是:[(1,4,7),(2,5,8),(3,6,9)]
那么,zip(*xyz)等价与 zip(1,4,7),(2,5,8),(3,6,9)
print u
运行结果是:[(1,2,3),(4,5,6),(7,8,9)]
(6)
x = [1,2,3]
r = zip(*[x]*3)
运行结果是:
[(1,1,1),(2,2,2),().3,3,3]
他的运行机制是:【x】生成一个列表的列表,他只有一个元素x,[x]*3 生成一个列表的列表,他有三个元素[x,x,x],zip(*[x]*3)就是zip(x,x,x)
2.匹配简单的以“www."开头,以”.com“序哦结尾的为恶霸域名,例如:www.yahoo.com.附加题:使你写的正则表达式还支持其他顶级域名:.edu,.net,等,如:www.ucec.edu
相关文章推荐
- C++ Boost 之Python(生成一个扩展模块)
- Python指南--数据结构
- Python指南--数据结构
- 搭建Python的集成开发环境WingIDE
- Python指南--深入流程控制
- Python指南--深入流程控制
- 用Python实现数据库编程
- Python指南--开胃菜
- Python指南--开胃菜
- Python指南--初步认识Python
- Python指南--初步认识Python
- Python指南--前言
- Python指南--使用Python解释器
- Python指南--使用Python解释器
- Python指南--前言
- python库lxml在linux和WIN系统下的安装
- C++ Boost 之Python(一个简单的例子)
- C++ Boost 之Python(继承)
- C++ Boost 之Python(大纲)