《Python編程快速上手—讓繁瑣工作自動(dòng)化》第8章實(shí)踐項(xiàng)目答案

8.9.2 瘋狂填詞

text.txt 內(nèi)容:
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)

程序運(yùn)行結(jié)果:

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 正則表達(dá)式查找

import os
import re


def search_txtfile(regular_expression, path='.'):
    """
    根據(jù)用戶輸入的正則表達(dá)式搜索指定路徑下所有文本文件,將匹配的文本打印出來(lái)
    :param regular_expression: 要匹配的正則表達(dá)式
    :param path: 要搜索的路徑,默認(rèn)為當(dāng)前路徑
    :return:
    """

    if not os.path.isdir(path):
        raise Exception('路徑不存在,請(qǐng)輸入正確路徑。')
    elif not os.path.isabs(path):
        path = os.path.abspath(path)  # 轉(zhuǎn)換為絕對(duì)路徑

    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')

程序運(yùn)行結(jié)果

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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容