本文目錄一覽:
- 1、開啟數據分析的大門-數據收集:Python對文件的操作
- 2、使用 Python 讀寫文件
- 3、Python批量讀取加密Word文檔轉存txt文本實現
- 4、python操作word文檔,用win32com,如何用python中的變量來命名word文檔的文件名
開啟數據分析的大門-數據收集:Python對文件的操作
簡介
我是一名應屆經濟學畢業生,在學習Python語言的過程中,接觸到了數據分析,機器學習和人工智能,並對此特別感興趣,現在我把整個學習過程記錄下來,希望和我有相同興趣和愛好的朋友們一同成長,期盼着各位專家的指導。
環境介紹
在整個過程當中,將採用Python和Excel,採用Python,是因為Python提供了豐富的開發框架和工具庫,使用Excel是因為Excel是使用非常廣泛的辦公軟件,我在Excel里將複雜的算法簡單化,使大家快速理解各種難以理解的算法。
在開始之前,我們已經準備好了Anaconda和Excel環境。在這裡省略了這個過程。
數據獲取將通過tushare開放平台,後面我會介紹和演示如何應用tushare平台。
數據分析流程簡介
數據分析是由數據收集開始,收集的數據經過標準化處理和整理後,通過各種算法,進行數據分析,目的是為了總結過去的 歷史 數據,在數據趨勢上預測未來的走勢,同時對現存的環境進行優化。
我們今天先從數據收集開始。
數據收集需要應用到Python對文件的讀寫操作。
下面這段代碼以只讀方式採用’UTF-8’編碼方式打開當前目錄下的text1.txt文件,並輸出到屏幕上。操作完畢後,關閉文件。
小貼士:在從tushare平台獲取數據時,每個用戶會分配到一個key,我們可以把這個key封裝到這個文件里。為的是數據安全和便利性。
Python對數據的處理主要是csv文件格式,Excel和數據庫。今天我們主要針對csv文件進行操作。為的是儘快開始我們的數據分析之旅。後面在適當的時候,我來完成對Excel和數據庫的操作。
Python 讀取csv文件有很多種方法,我們這裡採用PANDAS庫,下面是讀取csv文件代碼:
下面這段代碼先生成數據列表,然後寫入csv文件。
好了,到現在為止,Python對數據收集的基礎工作就算完成了,Python對文件操作有很多技巧,不是我們這一系列的重點,就不一一介紹了,有興趣的夥伴可以查閱相關文檔。
使用 Python 讀寫文件
有些數據是臨時的,它們在應用程序運行時存儲在內存中,然後丟棄。但是有些數據是持久的。它們存儲在硬盤驅動器上供以後使用,而且它們通常是用戶最關心的東西。對於程序員來說,編寫代碼讀寫文件是很常見的,但每種語言處理該任務的方式都不同。本文演示了如何使用 Python 處理文件數據。
在 Linux 上,你可能已經安裝了 Python。如果沒有,你可以通過發行版軟件倉庫安裝它。例如,在 CentOS 或 RHEL 上:
在 macOS 上,你可以使用 MacPorts或Homebrew安裝。在 Windows 上,你可以使用Chocolatey安裝。
一旦安裝了 Python,打開你最喜歡的文本編輯器,準備好寫代碼吧。
如果你需要向一個文件中寫入數據,記住有三個步驟:
這與你在計算機上編碼、編輯照片或執行其他操作時使用的步驟完全相同。首先,打開要編輯的文檔,然後進行編輯,最後關閉文檔。
在 Python 中,過程是這樣的:
這個例子中,第一行以 寫 模式打開了一個文件,然後用變量 f 表示,我使用了 f 是因為它在 Python 代碼中很常見,使用其他任意有效變量名也能正常工作。
在打開文件時,有不同的模式:
第二行表示向文件中寫入數據,本例寫入的是純文本,但你可以寫入任意類型的數據。
最後一行關閉了文件。
對於快速的文件交互,常用有一種簡短的方法可以寫入數據。它不會使文件保持打開狀態,所以你不必記得調用 close 函數。相反,它使用 with 語法:
如果你或你的用戶需要通過應用程序需要向文件中寫入一些數據,然後你需要使用它們,那麼你就需要讀取文件了。與寫入類似,邏輯一樣:
同樣的,這個邏輯反映了你一開始使用計算機就已知的內容。閱讀文檔,你可以打開、閱讀,然後關閉。在計算機術語中,“打開”文件意味着將其加載到內存中。
實際上,一個文本文件內容肯定不止一行。例如,你需要讀取一個配置文件、 遊戲 存檔或樂隊下一首歌曲的歌詞,正如你打開一本實體書時,你不可能立刻讀完整本書,代碼也只能解析已經加載到內存中的文件。因此,你可能需要遍歷文件的內容。
示例的第一行指明使用 讀 模式打開一個文件,然後文件交由變量 f 表示,但就像你寫數據一樣,變量名是任意的。 f 並沒有什麼特殊的,它只是單詞 “file” 的最簡表示,所以 Python 程序員會經常使用它。
在第二行,我們使用了 line ,另一個任意變量名,用來表示 f 的每一行。這告訴 Python 逐行迭代文件的內容,並將每一行的內容打印到輸出中(在本例中為終端或IDLE)。
就像寫入一樣,使用 with 語法是一種更簡短的方法讀取數據。即不需要調用 close 方法,方便地快速交互。
使用 Python 有很多方法向文件寫入數據,包括用 JSON、YAML、TOML等不同的格式寫入。還有一個非常好的內置方法用於創建和維護SQLite數據庫,以及許多庫來處理不同的文件格式,包括圖像、音頻和視頻等。
via:
作者:Seth Kenlon選題:lujun9972譯者:MjSeven校對:turbokernel
Python批量讀取加密Word文檔轉存txt文本實現
# -*- coding:utf-8 -*-
from win32com import client as wc
import os
key = ‘文檔密碼’
def Translate(input, output):
# 轉換
wordapp = wc.Dispatch(‘Word.Application’)
try:
doc = wordapp.Documents.Open(input, False, False, False,key)
doc.SaveAs(FileName=output, FileFormat=4, Encoding=”gb2312″)
doc.Close()
print(input, “完成”)
os.remove(input)
# 為了讓python可以在後續操作中r方式讀取txt和不產生亂碼,參數為4
except:
print(input,”密碼錯誤”)
if __name__ == ‘__main__’:
#docx文檔物理路徑
path = r”C:Usersdocx”
key = ‘文檔密碼’
j=0
for file in os.listdir(path):
if ‘.doc’ in file:
name = file.split(“.docx”)[0]
#輸入文檔物理路徑
input_file = r”C:Usersdocx”+””+file
#輸出文檔物理路徑
output_file=r”C:Users xt”+””+name+”.txt”
Translate(input_file, output_file)
j=j+1
print(j)
else:continue
python操作word文檔,用win32com,如何用python中的變量來命名word文檔的文件名
import sys, time, string, win32com.client, stat, os
class CWordAutomate:
“””封裝word com 連接”””
def __init__( self ):
“””創建到word的ole連接對象”””
self.m_obWord = win32com.client.Dispatch( “Word.Application” )
self.m_obDoc = self.m_obWord.Documents.Add( ) #創建文檔
self.m_obWord.Visible = 1
self.m_Sel = self.m_obWord.Selection # 獲取選擇對象
def WriteLine( self, sTxt, sFont, lSize, bBold=0 ):
“””寫一行到文檔”””
self.m_Sel.Font.Name = sFont
self.m_Sel.Font.Bold = bBold
self.m_Sel.Font.Size = lSize
self.m_Sel.TypeText( Text=sTxt + “\n” )
def Save(self, sFilename):
self.m_obDoc.SaveAs(sFilename)
def Quit(self):
self.m_obWord.Quit()
def file_test(file):
“””
測試用戶提供的文件,查看它是否存在並包含數據。
如果輸入文件不存在或是空的,則返回一個警告代碼
“””
if (0 == os.path.isfile(file) or (0 == os.stat(file)[stat.ST_SIZE])):
return 1
else:
return 0
if __name__ == “__main__”:
usage = “\n\n\tUsage: msword.py {inputfile} {outputfile}\n”
#
# 測試傳入數字的參數
#
if len(sys.argv) != 3:
print “\n\n\tmsword.py error: \n\n\tInsufficient arguments passed.”
print usage
sys.exit(1)
# 測試源文件是否存在並包含數據
if file_test(sys.argv[1]) == 1 :
print “\n\n\tmsword.py error: \n\n\tSource file not found or is empty.”
print usage
sys.exit(1)
# 測試目標文件,避免意外導致崩潰
if file_test(sys.argv[2]) == 0 :
print “\n\n\tmsword.py error: \n\n\tTarget file already exists.”
print usage
sys.exit(1)
sFileName = sys.argv[1]
obFile = file( sFileName, ‘r+’ )
sContent = obFile.read()
obFile.close()
lstContent = sContent.splitlines()
#
# 寫入數據
#
obWord = CWordAutomate()
for sLine in lstContent:
obWord.WriteLine( sLine, “Courier New”, 10 )
sLastMsg = time.strftime( “document generated on %c”, time.localtime() )
obWord.WriteLine( sLastMsg, “Times New Roman”, 14, 0 )
obWord.Save(sys.argv[2])
obWord.Quit()
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/271477.html