zoukankan      html  css  js  c++  java
  • python练习题-9-6

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

     1 #!/usr/bin/env python
     2 #-*- coding: utf-8 -*-
     3 
     4 
     5 #文件比较:比较两个文本文件是否相同,如果不同,给出第一个不同处的行号和列号
     6 def func_9_6():
     7     choice1 = raw_input("Enter one filename: ")
     8     choice2 = raw_input("Enter another filename: ")
     9     if choice1 == '' or choice2 == '':
    10         return
    11     f1 = open(choice1)
    12     f2 = open(choice2)
    13     lines1 = f1.readlines()
    14     lines2 = f2.readlines()
    15     lines_tmp1 = len(lines1) if len(lines1) < len(lines2) else len(lines2)
    16     for i in range(lines_tmp1):
    17         if lines1[i] == lines2[i]:
    18             continue
    19         lines_tmp2 = len(lines1[i]) if len(lines1[i]) < len(lines2[i]) else len(lines2[i])
    20         for j in range(lines_tmp2):
    21             if lines1[i][j] == lines2[i][j]:
    22                 continue
    23             else:
    24                 print '%s is not equal of %s, col:%d raw:%d
    ' % (choice1, choice2, i+1, j+1)
    25     if  len(lines1) == len(lines2) and i == lines_tmp1-1:
    26         print '%s is equal of %s
    ' % (choice1, choice2)  
    27 
    28 def showmenu():
    29     while True:
    30         choice = raw_input("Enter question num, (Q)uit: ")
    31         if choice.lower() == 'q':
    32             break
    33         if choice == '9-6':
    34             func_9_6()
    35 
    36 if __name__ == '__main__':
    37     showmenu()

    测试结果:

     1 [root@192 python_code]# python file_operate.py 
     2 Enter question num, (Q)uit: 9-6
     3 Enter one filename: testfile  
     4 Enter another filename: testfile
     5 testfile is equal of testfile
     6 
     7 Enter question num, (Q)uit: 9-6
     8 Enter one filename: testfile
     9 Enter another filename: myfile
    10 testfile is not equal of myfile, col:1 raw:6
    11 
    12 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]# 
  • 相关阅读:
    xampp+vscode开发php的配置流程
    如何开始学习以太坊及区块链
    java动态生成带下拉框的Excel导入模板
    汉字转拼音
    Git+Gradle+Eclipse构建项目
    test
    MacOS这idea快捷键
    HashMap扩容全过程
    NIO理解
    详解MySQL 内连接、外连接、左连接、右连接
  • 原文地址:https://www.cnblogs.com/mrlayfolk/p/12019431.html
Copyright © 2011-2022 走看看