本代码是《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. dotnet 判断程序当前使用管理员运行降低权使用普通权限运行

    有一些程序是不想通过管理员权限运行的,因为在很多文件的读写,如果用了管理员权限程序写入的程序,其他普通权限的程序是无法直接访问的.本文告诉大家如何判断当前的程序是通过管理员权限运行,然后通过资源管理器 ...

  2. oracle 包 简单使用

    理解PL/SQL包 简介 包(package)的主要作用是用于逻辑组合相关的PL/SQL类型 比如记录类型或者集合类型,PL/SQL游标或游标声明以及PL/SQL子程序 还可以包含任何可以在块的声明区 ...

  3. sparksql 练习题两道

    第一题:select '{"id":1,"name":{"url":"http://xxx/yyy/zz/test.js" ...

  4. oracle 查询含clob 字段慢

    项目中使用Oracle 查询表数据感觉特别慢,一秒只能查询十条记录. 刚开始以为是全表扫描的问题,加上索引 生效后,查询还是很慢. 表中只有三个字段,其中一个是clob,于是推测,是不是查询字段的原因 ...

  5. nixyx —— 一个小巧的项目工程/编译文件生成器(构建系统?)

    恩..nixyx确实算不上是一个构建系统. 所谓构建系统,比如GNU的Autotools,那是一套很完整的构建体系,包括了程序的配置,编译和安装三大部分. 类似的软件还有:google的gyp.腾讯的 ...

  6. Visioi形状相关应用

    选择手柄为白点  按住shift的同时移动白点更为灵活 黄色的点就是控制手柄(只有一维图形有) 当调整形状出现绿色边的时候说明:这个时候这个形状的边等于了某个形状的长 铅笔工具可以移动控制点来更形状 ...

  7. csredis-in-asp.net core理论实战-主从配置、哨兵模式

    csredis GitHub https://github.com/2881099/csredis 看了github上的开源项目,上面真的只是单纯的使用文档,可能对于我这种人(菜鸟)就不太友好, 我知 ...

  8. JDBC 详解笔记

    # JDBC ## 1:What? 通过Java代码来操作数据库的. 数据库的种类很多,导致不同的数据库的操作方式是不同. 通过JDBC的标准完成.通过java语言完成对于数据库的CRUD. ## 2 ...

  9. $SP$3267 $DQUERY - D-query$ 主席树

    正解:主席树 解题报告: 传送门! 一直在做$dp$题好久没做做别的了,,,所以来做点儿别的练练手,,,不然以前学的全忘了要/$kk$ 然后这题好像可以莫队/主席树/线段树/树状数组? 我就先只港下主 ...

  10. elasticsearch定时删除索引第二版

    该版本对于上一个版本做了升级.兼容性更好了. #!/bin/bash ####################################################### # $Name: ...