本代码是《Python核心编程(第二版)》第九章的9-6练习题,完成的功能为:文件比较:比较两个文本文件是否相同,如果不同,给出第一个不同处的行号和列号。

 #!/usr/bin/env python
#-*- coding: utf-8 -*- #文件比较:比较两个文本文件是否相同,如果不同,给出第一个不同处的行号和列号
def func_9_6():
choice1 = raw_input("Enter one filename: ")
choice2 = raw_input("Enter another filename: ")
if choice1 == '' or choice2 == '':
return
f1 = open(choice1)
f2 = open(choice2)
lines1 = f1.readlines()
lines2 = f2.readlines()
lines_tmp1 = len(lines1) if len(lines1) < len(lines2) else len(lines2)
for i in range(lines_tmp1):
if lines1[i] == lines2[i]:
continue
lines_tmp2 = len(lines1[i]) if len(lines1[i]) < len(lines2[i]) else len(lines2[i])
for j in range(lines_tmp2):
if lines1[i][j] == lines2[i][j]:
continue
else:
print '%s is not equal of %s, col:%d raw:%d\n' % (choice1, choice2, i+1, j+1)
if len(lines1) == len(lines2) and i == lines_tmp1-1:
print '%s is equal of %s\n' % (choice1, choice2) def showmenu():
while True:
choice = raw_input("Enter question num, (Q)uit: ")
if choice.lower() == 'q':
break
if choice == '9-6':
func_9_6() if __name__ == '__main__':
showmenu()

测试结果:

 [root@192 python_code]# python file_operate.py
Enter question num, (Q)uit: 9-6
Enter one filename: testfile
Enter another filename: testfile
testfile is equal of testfile Enter question num, (Q)uit: 9-6
Enter one filename: testfile
Enter another filename: myfile
testfile is not equal of myfile, col:1 raw:6 Enter question num, (Q)uit:

两个文件testfile和myfile的内容如下:

[root@192 python_code]# more testfile
hello
world
[root@192 python_code]# more myfile
helloworld
[root@192 python_code]#

python练习题-9-6的更多相关文章

  1. Python练习题 028:求3*3矩阵对角线数字之和

    [Python练习题 028] 求一个3*3矩阵对角线元素之和 ----------------------------------------------------- 这题解倒是解出来了,但总觉得 ...

  2. Python练习题 027:对10个数字进行排序

    [Python练习题 027] 对10个数字进行排序 --------------------------------------------- 这题没什么好说的,用 str.split(' ') 获 ...

  3. Python练习题 026:求100以内的素数

    [Python练习题 026] 求100以内的素数. ------------------------------------------------- 奇怪,求解素数的题,之前不是做过了吗?难道是想 ...

  4. Python练习题 025:判断回文数

    [Python练习题 025] 一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. ---------------------------------------- ...

  5. Python练习题 024:求位数及逆序打印

    [Python练习题 024] 给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. ---------------------------------------------- ...

  6. Python练习题 004:判断某日期是该年的第几天

    [Python练习题 004]输入某年某月某日,判断这一天是这一年的第几天? ---------------------------------------------- 这题竟然写了 28 行代码! ...

  7. Python练习题-1.使用匿名函数对1~1000求和,代码力求简洁。

    Python 练习 标签(空格分隔): Python Python练习题 Python知识点 一.使用匿名函数对1~1000求和,代码力求简洁. 答案: In [1]: from functools ...

  8. PYTHON练习题 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数。

    Python 练习 标签: Python Python练习题 Python知识点 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数,如果大于预设的 ...

  9. python 基础 2.8 python练习题

    python 练习题:   #/usr/bin/python #coding=utf-8 #@Time   :2017/10/26 9:38 #@Auther :liuzhenchuan #@File ...

  10. Python练习题2

    如果真的想学精,学什么都不是好学的,如果真的想把Python学的出神入化,几乎自己想做什么都可以,就要下定恒心,坚持下去. 接下来继续更新Python练习题2,通过更新前一部的练习题让自己也学到了不少 ...

随机推荐

  1. Linux 内核取消 urb

    为停止一个已经提交给 USB 核心的 urb, 函数 usb_kill_urb 或者 usb_unlink_urb 应 当被调用: int usb_kill_urb(struct urb *urb); ...

  2. CP防火墙配置NAT

    Static NAT配置 Step1:创建host对象并且配置static NAT,如下图: Step2:修改全局属性的NAT项的ARP代理选项,勾选即可,如下图: Step3:在网关的web por ...

  3. 【Linux】Ubuntu16.04 ftp匿名访问

    一.安装: 1.安装命令: sudo apt-get install vsftpd 2.配置文件: vi /etc/vsftpd.conf 3.开启.关闭.重启服务 sudo /etc/init.d/ ...

  4. mac笔记本安装Android sdk

    一.先下载android sdk for mac   给二个靠谱的网址: a). http://down.tech.sina.com.cn/page/45703.html b). http://mac ...

  5. 修改kubelet启动参数

    我是用kubeadm安装的k8s,现在通过Aqua扫描出相关配置问题,需要修改kubelet的启动参数: 默认配置文件名为:10-kubeadm.conf #vim /usr/lib/systemd/ ...

  6. 【小技巧】只用css实现带小三角的对话框样式

    一个小小的技巧: 如图所示,这种小三角,不用图片,只用css怎么实现呢? 直接上代码吧: <!DOCTYPE html> <html> <head> <tit ...

  7. 【题解】CF986E Prince's Problem(树上差分+数论性质)

    [题解]CF986E Prince's Problem(树上差分+数论性质) 题目大意: 给定你一棵树,有点权\(val_i\le 10^7\).现在有\(m\)组询问给定参数\(x,y,w\)问你对 ...

  8. 洛谷$P4177\ [CEOI2008]\ order$ 网络流

    正解:网络流 解题报告: 传送门$QwQ$ 开始看感$jio$长得好像和太空飞行计划差不多的,,,然后仔细康康发现还有租操作,,, 按一般的套路碰到这样儿的一般就先按非特殊化的建图然后考虑怎么实现这个 ...

  9. Spring 配置内容外部化

  10. Linux 文件系统 -- inode 笔记

    什么是 inode inode 的定义:Unix 文件系统中的一种数据结构,用来存储文件的元信息数据   文件在硬盘中的存储是以"块"(block)为单位的,常见的块大小是 4k ...