美文网首页Python
《Python编程快速上手—让繁琐工作自动化》第8章实践项目答案

《Python编程快速上手—让繁琐工作自动化》第8章实践项目答案

作者: simon_xu0559 | 来源:发表于2019-11-02 16:32 被阅读0次

    8.9.2 疯狂填词

    text.txt 内容:
    The ADJECTIVE panda walked to the NOUN and then VERB. A nearby NOUN was unaffected by these events.

    with open('test.txt') as file_obj:
        content = file_obj.read().split()
    
    content[content.index('ADJECTIVE')] = input('Enter an adjective: ')
    content[content.index('NOUN')] = input('Enter a noun: ')
    content[content.index('VERB.')] = input('Enter a verb: ') + '.'
    content[content.index('NOUN')] = input('Enter a noun: ')
    
    sentence = ' '.join(content)
    print(sentence)
    

    程序运行结果:

    Enter an adjective: silly
    Enter a noun: chandelier
    Enter a verb: screamed
    Enter a noun: pickup truck
    The silly panda walked to the chandelier and then screamed. A nearby pickup truck was unaffected by these events.
    
    Process finished with exit code 0
    

    8.9.3 正则表达式查找

    import os
    import re
    
    
    def search_txtfile(regular_expression, path='.'):
        """
        根据用户输入的正则表达式搜索指定路径下所有文本文件,将匹配的文本打印出来
        :param regular_expression: 要匹配的正则表达式
        :param path: 要搜索的路径,默认为当前路径
        :return:
        """
    
        if not os.path.isdir(path):
            raise Exception('路径不存在,请输入正确路径。')
        elif not os.path.isabs(path):
            path = os.path.abspath(path)  # 转换为绝对路径
    
        regex = re.compile(regular_expression)
    
        for current_folder, sub_folders, file_names in os.walk(path):  # 遍历文件夹下所有文件
            for file_name in file_names:
                if not file_name.endswith('.txt'):
                    continue
                file_name_with_abspath = os.path.join(current_folder, file_name)
                file_obj = open(file_name_with_abspath, 'r', encoding='UTF-8')
                for index, line in enumerate(file_obj.readlines()):
                    mo = regex.search(line)
                    if mo is not None:
                        print(f'{file_name_with_abspath}, line {index + 1}: {line.rstrip()}')
                file_obj.close()
    
    
    search_txtfile('\\sCali.*nia')
    

    程序运行结果

    D:\Pycharm\quizGenerator\capitalsquiz01.txt, line 225: 37. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz02.txt, line 183: 30. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz03.txt, line 33: 5. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz04.txt, line 225: 37. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz05.txt, line 21: 3. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz06.txt, line 63: 10. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz07.txt, line 135: 22. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz08.txt, line 9: 1. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz09.txt, line 237: 39. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz10.txt, line 123: 20. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz11.txt, line 297: 49. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz12.txt, line 207: 34. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz13.txt, line 135: 22. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz14.txt, line 93: 15. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz15.txt, line 291: 48. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz16.txt, line 231: 38. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz17.txt, line 291: 48. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz18.txt, line 207: 34. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz19.txt, line 243: 40. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz20.txt, line 93: 15. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz21.txt, line 267: 44. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz22.txt, line 303: 50. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz23.txt, line 237: 39. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz24.txt, line 279: 46. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz25.txt, line 105: 17. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz26.txt, line 51: 8. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz27.txt, line 297: 49. What is the capital of California?
    D:\Pycharm\quizGenerator\capitalsquiz28.txt, line 171: 28. What is the capital of California?
    
    Process finished with exit code 0
    

    相关文章

      网友评论

        本文标题:《Python编程快速上手—让繁琐工作自动化》第8章实践项目答案

        本文链接:https://www.haomeiwen.com/subject/lfchbctx.html