python生成txt文件
Ⅰ 利用python將docx文件轉為txt
背景:工作中需要將文件夾下的若干word文件docx轉換為對應txt文本格式
因此需要將docx中文本讀取出來,然後保存為txt格式即可
需要的python模塊為 python-docx : https://python-docx.readthedocs.io/en/latest/index.html, 導入模塊時候導入docx
(只能讀取.docx文件,不能讀取.doc文件)
注意,在PyPi里還有一個叫docx的庫,已經停止更新,不建議使用)
http://www.cnblogs.com/geek-arking/p/9300617.html
上面的方法只能讀取docx文件,如果讀取doc會報錯
結果報錯:docx.opc.exceptions.PackageNotFoundError: Package not found。還是無法識別doc
「改變拓展名並沒有改變其編碼方式,因此無法讀取文本內容,需將doc文件用word另存為docx後再用python-docx讀取其內容」
對於要轉換的doc文件,網上的資料都是使用win32,需要安裝 pypiwin32
https://www.cnblogs.com/AlgorithmDot/p/3386918.html
通過上面的方法,有時可以直接將doc轉換為txt文件,有時候會報錯。
這里我們可以考慮將doc文件直接轉換為docx然後再通過上面的方法讀取為txt,如果手動將doc修改為txt或者docx,打開文件會顯示亂碼,但是可以用其提供的SaveAs方法將.doc文檔利用手動的方式「另存為」.docx文檔,就能夠成功打開轉化後的.docx文檔,
doc.SaveAs(tmp +'.docx', 16)
其中16的含義如下:
利用win32com介面直接調用office API,好處是簡單、兼容性好,只要office能處理的,python都可以處理,處理出來的結果和office word裡面「另存為」一致。
下面是office 2007支持的全部文件格式對應表:
wdFormatDocument = 0
wdFormatDocument97 = 0
wdFormatDocumentDefault = 16
wdFormatDOSText = 4
wdFormatDOSTextLineBreaks = 5
wdFormatEncodedText = 7
wdFormatFilteredHTML = 10
wdFormatFlatXML = 19
wdFormatFlatXMLMacroEnabled = 20
wdFormatFlatXMLTemplate = 21
= 22
wdFormatHTML = 8
wdFormatPDF = 17
wdFormatRTF = 6
wdFormatTemplate = 1
wdFormatTemplate97 = 1
wdFormatText = 2
wdFormatTextLineBreaks = 3
wdFormatUnicodeText = 7
wdFormatWebArchive = 9
wdFormatXML = 11
wdFormatXMLDocument = 12
= 13
wdFormatXMLTemplate = 14
= 15
wdFormatXPS = 18
照著字面意思應該能對應到相應的文件格式。
1、新建或打開文件。這個比較簡單用docx的Document類,若指定路徑則是打開文檔;若沒有指定路徑則是新建文檔
2、保存文件。有打開,就有保存。用Document類的save方法,其中參數是保存的文件路徑,或者要保存的文件流。一般指定路徑即可。
doc.save(path_or_stream)
3、對象集合。python-docx包含了word文檔的相關對象集合。
4、插入段落。段落是word最基本的對象之一。
5、新增樣式。這個幫助文檔裡面說得不仔細,而且還是英文的。我手頭上的項目用到這個,就自己琢磨出怎麼使用,如下。
6、應用字元樣式。字元自然是在段落裡面的,可以採用下面方法給段落追加文字和設置字元樣式。
#插入一個空白段落
p = doc.add_paragraph('')
p.add_run('123', style="Heading 1 Char")
p.add_run('456')
p.add_run('789', style="Heading 2 Char")
#這樣一個段落就應用了兩個字元樣式,中間「456」就沒應用樣式
printp.text#輸出結果是u'123456789' 也還是連續的
7、設置字體。當然可以不用通過設置樣式對某些字進行設置,也可以直接設置。
p = doc.add_paragraph('')
r = p.add_run('123')
r.font.bold =True#加粗
r.font.italic =True#傾斜 等等...
8、表格操作。表格也是經常用到的一種對象類型。
Ⅱ 如何將python運行結果保存成txt
將python運行結果保存成txt的具體操作步驟如下:
1、首先我們打開電腦桌面,在電腦桌面上點按win+R進入運行,在搜索框里輸入cmd並點擊確定。
Ⅲ 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怎麼創建一個txt文件
python怎麼創建一個txt文件的方法。
如下參考:
1.首先使用內置的空閑編輯器進行編輯(右鍵單擊並選擇),如下圖所示。
Ⅳ 怎麼用python把save文件改成txt文件
一、利用open和write函數
with open('test.txt','w') as f:
f.write(test)
其中test.txt為要保存的文件filename,test為要保存的數據,可以為字元串str類型,也可以是bytes類型,但是此種方法無法保存數組,數組保存需要下面第二種方法。
二、利用np.save函數
np.savetxt('test.txt',test,fmt='%d')
其中test.txt為要保存的文件filename,test為要保存的數組,fmt='%d'為數據保存格式,保存為整數。
Ⅵ python怎麼新建文檔怎麼用python建立一個txt文檔並輸入內容啊
在電腦桌譽胡槐面上,新建一個名為做宏a的文件夾。
並記住這個文件夾裡面的絕對路徑,我這是:
C:\Users\Administrator\Desktop\a
注意,此時文件夾a裡面是空的。
打開python的編譯器;
我用的python是Anaconda整合的python3的版本對應的編譯器:spyder。
開端就寫:
#!/usr/bin/python
這就像是一句開場白。
既然需要輸出中慶友文,那麼就需要設定編碼格式:
# -*- coding:utf-8 -*-
用python在文件夾a裡面,建立一個b.txt文檔:
file = open('C:/Users/Administrator/Desktop/a/b.txt','w')
'w'表示這個文檔可以編輯,就是可讀可寫的意思。
在裡面寫文字:
file.write('你好,\n 世界。')
其中,\n是換行符。
整體代碼如下:
#!/usr/bin/python
# -*- coding:utf-8 -*-
file = open('C:/Users/Administrator/Desktop/a/b.txt','w')
file.write('你好,\n 世界。')
而此時,a文件夾裡面已經有了一個b.txt文檔。
打開這個文檔,可以看到內容如下圖所示。