文章目錄
一.文件的使用
1.1 文件的類型
- 文本文件
- 二進制文件
1.2 文件的打開和關閉
1.2.1 打開文件的代碼
<變量名> = open(<文件名>,<打開模式>)
文件名
:直接寫文件路徑,但是python中規定"\"是轉義字符
,所以一般用/ 或者\\
來表示,比如"D:/PYE/f.text"
或者"D:\\PYE\\f.text"
相對路徑
:如果當前文件在D盤根目錄下,可以直接寫成"./PYE/f.text"
。如果當前程序與當前文件在相同目錄,可以直接寫成"f.text"
1.2.2 打開文件的模式
舉例:
1.2.3 關閉文件的代碼
<變量名>.close()
//每次使用完文件應該關閉
1.3 文件內容的讀取
1.3.1 三種文件內容的讀取方法
以下描述都是基於文件內容是中國是個偉大的國家
1.3.2 文件的全文本操作
- 遍歷全文本:方法一
fname = input("請輸入要打開的文件路徑")
fo = open(fname,"r")
txt = fo.read() //一次讀入,統一處理
#處理操作
fo.close()
- 遍歷全文本:方法二
fname = input("請輸入要打開的文件路徑")
fo = open(fname,"r")
txt = fo.read(2) //按數量讀入,逐步處理
while txt != " ":
#處理操作
txt = fo.read(2)
fo.close()
- 逐行遍歷文件:方法一
fname = input("請輸入要打開的文件路徑:")
fo = open(fname,"r")
for line in fo.readlines(): //一次讀入,分行處理
print(line)
fo.close()
- 逐行遍歷文件:方法二
fname = input("請輸入要打開的文件路徑:")
fo = open(fname,"r")
for line in fo: //分行讀入,分行處理
print(line)
fo.close()
1.4 數據的文件寫入
舉例:
fo = open("output.text","w+")
ls = ["中國","法國","美國"]
fo.writelines(ls)
for line in fo:
print(line)
fo.clone()
>>>(沒有任何輸出)
fo = open("output.text","w+")
ls = ["中國","法國","美國"]
fo.seek(0)
fo.writelines(ls)
for line in fo:
print(line)
fo.clone()
>>>中國法國美國
二.實例:自動軌跡繪製
2.1 問題分析
- 需求:根據腳本來繪製圖形
- 不是寫代碼而是寫數據繪製軌跡
- 數據腳本是自動化最重要的一步
2.2 代碼
import turtle as t
t.title('自動軌跡繪製')
t.setup(800, 600, 0, 0)
t.pencolor("red")
t.pensize(5)
#數據讀取
datals = []
f = open("data.txt")
for line in f:
line = line.replace("\n","")
datals.append(list(map(eval, line.split(","))))
f.close()
#自動繪製
for i in range(len(datals)):
t.pencolor(datals[i][3],datals[i][4],datals[i][5])
t.fd(datals[i][0])
if datals[i][1]:
t.rt(datals[i][2])
else:
t.lt(datals[i][2])
2.3 運行效果
三.一維數據的格式化和處理
3.1 數據組織的維度
- 一維數據:對應列表,數據,集合
- 二維數據:對應表格
- 多維數據:由一維或二維數據上在新維度上擴展形成
3.2 一維數據的表示
3.3 一維數據的存儲
3.4 一維數據的處理
3.4.1 讀入處理
3.4.2 寫入處理
四.二維數據的格式化和處理
4.1 二維數據的表示
- 二維列表表示
- 使用兩層for循環遍歷元素
- 外層列表中每個元素可以對應一行,也可以對應一列
4.2 CSV數據存儲格式
- CSV:conma-separated Values,指的是由逗號分隔的值
- 國際通用的一二維數據存儲格式,一般.csv擴展名
- 每行一個一維數據,用逗號分隔,無空行
- Excel和一般編輯軟件都可以讀入或另存爲csv文件
- 如果某個元素缺失,逗號仍要保留
- 二維數據的表頭可以作爲數據存儲,也可以另行存儲
- 逗號爲英文半角逗號,逗號與數據之間無額外空格
4.3 二維數據的存儲
- 一般的索引習慣:
ls[行,列]
,先行後列,一般外層列表每個元素是一行,所以按行存
4.4 二維數據的處理
- 從CSV格式文件中讀入數據
fo = open(fname)
ls = []
for line in fo:
line = line.replace("\n","")//將最後的換行符換成空字符
ls.append(line.split(","))
fo.close
- 將數據寫入CSV格式的文件
ls = [[],[],[]] #二維列表
f = open(fname,'w')
for item in ls:
f.write(','.join(item)+'\n')
f.close
- 二維數據的逐一處理(二層循環)
ls = [[1,2],[3,4],[5,6]] #二維列表
for row in ls:
for column in row:
print(column)
五.wordcloud庫的使用
5.1 安裝
- 安裝
pip install wordcloud
wordcloud.WordCloud()
代表一個文本對應的詞雲- 可以根據文本中詞語出現的頻率等參數繪製詞雲
- 繪製詞雲的形狀,尺寸和顏色都可以設定
5.2 常規方法
w = wordcloud.WordCloud()
- 以WordCloud對象爲基礎
- 配置參數,加載文本,輸出文件
5.3 詞雲繪製的步驟介紹
(1)基本步驟:
- 配置對象參數
- 加載詞雲文本
- 輸出詞雲文件
(2)實例
import wordcloud
c = wordcloud.WordCloud()
c.generate("wordcloud by Python")
c.to_file("pywordcloud.png")
5.4 配置對象參數
w = wordcloud.WordCloud(參數)
5.5 實例
import wordcloud
txt = "life is short,you need python"
w = wordcloud.WordCloud(background_color = "white")
w.generate(txt)
w.to_file("pywcloud.png")
六.政府工作報告詞雲
兩篇文章的地址
https://python123.io/resources/pye/新時代中國特色社會主義.txt
https://python123.io/resources/pye/關於實施鄉村振興戰略的意見.txt
#GovRptWordCloudv1.py
import jieba
import wordcloud
f = open("新時代中國特色社會主義.txt", "r", encoding="utf-8")
t = f.read()
f.close()
ls = jieba.lcut(t)
txt = " ".join(ls)
w = wordcloud.WordCloud( \
width = 1000, height = 700,\
background_color = "white",
font_path = "msyh.ttc"
)
w.generate(txt)
w.to_file("grwordcloud.png")