python练习题-9-6
本代码是《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的更多相关文章
- Python练习题 028:求3*3矩阵对角线数字之和
[Python练习题 028] 求一个3*3矩阵对角线元素之和 ----------------------------------------------------- 这题解倒是解出来了,但总觉得 ...
- Python练习题 027:对10个数字进行排序
[Python练习题 027] 对10个数字进行排序 --------------------------------------------- 这题没什么好说的,用 str.split(' ') 获 ...
- Python练习题 026:求100以内的素数
[Python练习题 026] 求100以内的素数. ------------------------------------------------- 奇怪,求解素数的题,之前不是做过了吗?难道是想 ...
- Python练习题 025:判断回文数
[Python练习题 025] 一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. ---------------------------------------- ...
- Python练习题 024:求位数及逆序打印
[Python练习题 024] 给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. ---------------------------------------------- ...
- Python练习题 004:判断某日期是该年的第几天
[Python练习题 004]输入某年某月某日,判断这一天是这一年的第几天? ---------------------------------------------- 这题竟然写了 28 行代码! ...
- Python练习题-1.使用匿名函数对1~1000求和,代码力求简洁。
Python 练习 标签(空格分隔): Python Python练习题 Python知识点 一.使用匿名函数对1~1000求和,代码力求简洁. 答案: In [1]: from functools ...
- PYTHON练习题 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数。
Python 练习 标签: Python Python练习题 Python知识点 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数,如果大于预设的 ...
- python 基础 2.8 python练习题
python 练习题: #/usr/bin/python #coding=utf-8 #@Time :2017/10/26 9:38 #@Auther :liuzhenchuan #@File ...
- Python练习题2
如果真的想学精,学什么都不是好学的,如果真的想把Python学的出神入化,几乎自己想做什么都可以,就要下定恒心,坚持下去. 接下来继续更新Python练习题2,通过更新前一部的练习题让自己也学到了不少 ...
随机推荐
- dotnet 判断程序当前使用管理员运行降低权使用普通权限运行
有一些程序是不想通过管理员权限运行的,因为在很多文件的读写,如果用了管理员权限程序写入的程序,其他普通权限的程序是无法直接访问的.本文告诉大家如何判断当前的程序是通过管理员权限运行,然后通过资源管理器 ...
- oracle 包 简单使用
理解PL/SQL包 简介 包(package)的主要作用是用于逻辑组合相关的PL/SQL类型 比如记录类型或者集合类型,PL/SQL游标或游标声明以及PL/SQL子程序 还可以包含任何可以在块的声明区 ...
- sparksql 练习题两道
第一题:select '{"id":1,"name":{"url":"http://xxx/yyy/zz/test.js" ...
- oracle 查询含clob 字段慢
项目中使用Oracle 查询表数据感觉特别慢,一秒只能查询十条记录. 刚开始以为是全表扫描的问题,加上索引 生效后,查询还是很慢. 表中只有三个字段,其中一个是clob,于是推测,是不是查询字段的原因 ...
- nixyx —— 一个小巧的项目工程/编译文件生成器(构建系统?)
恩..nixyx确实算不上是一个构建系统. 所谓构建系统,比如GNU的Autotools,那是一套很完整的构建体系,包括了程序的配置,编译和安装三大部分. 类似的软件还有:google的gyp.腾讯的 ...
- Visioi形状相关应用
选择手柄为白点 按住shift的同时移动白点更为灵活 黄色的点就是控制手柄(只有一维图形有) 当调整形状出现绿色边的时候说明:这个时候这个形状的边等于了某个形状的长 铅笔工具可以移动控制点来更形状 ...
- csredis-in-asp.net core理论实战-主从配置、哨兵模式
csredis GitHub https://github.com/2881099/csredis 看了github上的开源项目,上面真的只是单纯的使用文档,可能对于我这种人(菜鸟)就不太友好, 我知 ...
- JDBC 详解笔记
# JDBC ## 1:What? 通过Java代码来操作数据库的. 数据库的种类很多,导致不同的数据库的操作方式是不同. 通过JDBC的标准完成.通过java语言完成对于数据库的CRUD. ## 2 ...
- $SP$3267 $DQUERY - D-query$ 主席树
正解:主席树 解题报告: 传送门! 一直在做$dp$题好久没做做别的了,,,所以来做点儿别的练练手,,,不然以前学的全忘了要/$kk$ 然后这题好像可以莫队/主席树/线段树/树状数组? 我就先只港下主 ...
- elasticsearch定时删除索引第二版
该版本对于上一个版本做了升级.兼容性更好了. #!/bin/bash ####################################################### # $Name: ...