黃哥分析如何用python解決特殊文本文件問題
有朋友提問:用vim或python將文件分割成多個txt文件? - Python
有一個字典txt文件,如何將它分成一個一個的txt文件?===字典txt文件如下===【游】
@上游:河流的上部。@遊子:指定詞,生活不定的人。@游俠:不定的俠客。【渺】a
@渺茫:微小難見狀。【渾】@渾濁:分不清之濁。===如何變成:===游.txt 和 渺.txt 和 渾.txt
==游.txt 裡面包含==【游】@上游:河流的上部。@遊子:指定詞,生活不定的人。@游俠:不定的俠客。
碰到問題,首先不要著急寫代碼,看看黃哥在《如何訓練自己的編程思路 - 黃哥的文章 - 知乎專欄》 中說的,
做習題,要像開發項目的流程一樣(需求->需求分析->設計->編碼->測試->交付等),n拿到一個習題,還沒有進行分析,就匆匆忙忙敲代碼,這個學習方法,是不好的學習方法。n先要分析清楚題目(所謂的需求分析,何為需求分析,請自己搜索),再設計,用那種數據類型(數據結構)n來組織或保存數據,用何種演算法來計算效率最高,用面向過程,還是面向對象的編程範式,還是用函數式編程等等。n設計後,再編寫代碼,最後寫測試。(也可以採用軟體開發過程中的應用方法,測試驅動開發等)n
設計:
1、整理文件,離不開文件循環讀和寫。2、可以用生成器輸出每一行。3、碰到行包含「【」這個字元串時,取字元串切片,作為文件。 下面yield的行,寫這個文件,再次碰到「【」這個字元串時,退出循環。代碼#! /usr/bin/pythonn# coding:utf-8nnndef read_from_chinese_dict(path):n 黃哥所寫n with open(path) as f:n for line in f:n yield linennnp = read_from_chinese_dict(字典.txt)ntry:n words = ""n while True:n if 【 in words:n with open(words[3:6]+.txt, w) as f:n while True:n words = p.next()n if 【 in words:n breakn f.write(words)n else:n words = p.next()nnexcept Exception as e:n print(文件處理完畢!)n
推薦閱讀:
TAG:Python |