零基礎學習Python文本處理

 | 小象     文 | 賈庸

本文將帶領小夥伴們一起,使用Python進行文本處理,先來看下要處理的文本, 文件名爲“data.txt”, 文件裏面的內容是三行中英對照的文本,和兩個空行,

我們要實現的功能就是從這三行文本中分別抽取出中文及其對應的英文,這個功能再加上爬蟲,就可以製作自己專屬的英語詞典了,是不是很酷, 又很實

用,還等什麼,趕緊上代碼

1.jpg

文要照顧到零基礎的童鞋,所以要從最簡單的building block 開始,先運行代碼看效果

2.jpg


貌似僅僅是打印出了文本中的內容,您說對啦,就是這麼簡單,我們追求的效果就是萬事開頭簡單,中間簡單,結尾簡單:)

雖然只有兩行代碼,但是對於真正零基礎的童鞋,恐怕只能明白print的意思了:)

所以要逐字解釋下, 首先是 open(“data.txt”),這是在告訴python,打開名爲“data.txt”的 文件;打開後幹什麼呢?通過 for 逐行讀取文件裏面的內容,有的童鞋可能第 一次接觸這種語法,感覺不理解,這個沒關係,其實不是不理解, 而是新知識需要適應,多敲幾遍代碼就,每天敲一遍,不出一個星期,就會

覺得異常親切了,不信可以試下,每天花3分鐘的時間, 一個星期一共21分鐘,真的有效哦。

然後就是print了,line表示的是每次讀取得到的那一行內容,包括空行也算哦,print(line),就是把讀取到的內容打印出來。

前面的3個知識點掌握後,童鞋們就已經是入門啦!然後就是V2,還是先看效果

3.png

有的童鞋會不禁大喊:亂碼了!親,莫慌張,這些方括號不是亂碼,是語法。在Python中, 一對方括號[]表示的是一個list,對,list是論個賣的,哦,不是賣,是使用:)

 一個list可以是空的, 比如上圖中就有兩個是空list,也可以是包含多個元素, 比如上圖中的另外3個list,每個list中包含了3個元素,在這個案例中每個元素是一個string, 用一對單引號表示string的開始和結束,有童鞋會問雙引號可以嗎,這個可以有:)

在同一個list中,元素與元素之間以逗號間隔。

輸出的結果我們已經搞懂了,下一步就要看源碼了

4.png

V2版中增加了一行,new_line,是對line進 行了兩個操作(也可以理解爲對line進 行了兩道加 工)後得到的,也就是我們前面看到的包含了元素的list。

那麼對line進行了什麼操作呢?

爲了說明對line進行的加 工,我們要定義一組變量,分別是空string(變量名爲emptyString), 一個字符(strA),一個字符後綴一個空格(strAWithTrailingWhitespace),對這個後綴空格的string進 行rstrip()操作後得到的string(strArstriped)。是不是有點像繞口令,請不要跳過,如果臨時跳過了,請再回來仔細讀一遍哈,其實y就是爲了體驗rstrip()的功能:)

我們一個一個來看下, 首先是空string

5.png

所謂空string,就是這個string不包含任何字符,所以 長度(也就是len(emptyString))爲0,print這個空string當然什麼都看不到,爲了讓 大家能看到效果,在print的時候 又加上了一個“.”

6.png

然後是包含一個字符的string(變量名爲strA),所以長度(也就是len(strA))爲1,然後是print這個string再加 一個“.”

有了前面的鋪墊,敲黑板的知識要來了!下 面我們要定義的這個變量是一個字符後綴(Trailing)一個空格

(Whitespace)變量名充分體現了這 一點:),所以長度爲2,請注意print時,“a”與“.”之間有明顯的 一個空格, 而且是可以用鼠標選中的哦


7.png

本小節最後一個變量名是strArstriped,即,對strAWithTrailingWhitespace變量進 行去後綴空格的操作得到的新變量,所以長度 又變回了1,請注意print時,“a”與“.”之間的那個空格被rstrip掉了

8.png

爲了方便童鞋們理解, 用兩個list分別存儲未經過rstrip的原始文本,和處理後的文本,對照效果如下圖所示

9.jpg

然後是split() 方法,作用就是split,將一行文本分成幾個小段,默認的分隔符(delimiter)是空格(whitespace),並且會將空串從結果中刪掉。效果如下

10.png

最後是最終版,listE存儲英語,listC存儲對應的中文

11.jpg

-END-

版權聲明:本文爲小象原創文章,轉載請聯繫後臺。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章