鱼C论坛

 找回密码
 立即注册
查看: 1664|回复: 6

[已解决]求组:用python3怎么将文本转化为WORD格式

[复制链接]
发表于 2021-3-10 11:02:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如题:我想将一个文件夹里的txt文本(数量比较多),全部改为WORD,要怎么实现,另外,我还希望,将这个每个word中字数保存到表格中,表格中需要两个数据,WORD文件名,以及这个WORD中文本的字数。请问这个要怎么实现,有大神可以指点下吗?
最佳答案
2021-3-10 22:08:56
本帖最后由 qq1151985918 于 2021-3-10 22:20 编辑
小菜鸟12 发表于 2021-3-10 21:49
大佬好,我晚上尝试着自己写了下代码,主要实现了打开指定目录下的文本,并读取,其他的步骤没什么头绪, ...


这是我刚刚敲的代码,你可以对照一下,我的不一定对,你的不一定错,自己试试看吧
代码有点问题,你应该看得出来,反斜杠\\\\\\\\\\\\\有很多应该是 双反斜杠,而被论坛屏蔽掉了一些
import os
import docx
import openpyxl

doc_help = r"""----------------------------------------------------
请输入需要读取txt的路径
如txt文档路径为 C:\Users\Administrator\Desktop\txt\001.txt
请输入 C:\Users\Administrator\Desktop\txt
----------------------------------------------------"""
print(doc_help)
txtspath = input("请输入路径:")
files = filter(lambda x:x[-4:].lower() == ".txt",os.listdir(txtspath))

def savedocx(path,data):
    file = docx.Document()
    file.add_paragraph(data)
    file.save(path)

if not os.path.exists(txtspath + "\\data\"):
    os.makedirs(txtspath + "\\data\")
if not os.path.exists(txtspath + "\\txt-docx\"):
    os.makedirs(txtspath + "\\txt-docx\")
    
xlsxpath = txtspath + "\\data\" + "data.xlsx"

wb = openpyxl.Workbook()
ws = wb.active
ws.column_dimensions['A'].width = 30.0
ws.append(['文件名','字数'])

for file in files:
    txtpath =  txtspath + "\" + file
    docxpath = txtspath + "\\txt-docx\" + file[:-4] + ".docx"
    
    data = open(txtpath).read()
    savedocx(docxpath,data)
    ws.append([file,str(len(data))])

wb.save(xlsxpath)

print("OK")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-10 11:36:09 | 显示全部楼层
       你得先完成 90% 以上的工作,遭遇到瓶颈再来求助,否则,帮你就是繁重的体力劳动。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-10 15:46:36 | 显示全部楼层
很简单,10分钟差不多就能搞定了,楼主先自己做一做,实在不会再喊我
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-10 21:49:22 | 显示全部楼层
qq1151985918 发表于 2021-3-10 15:46
很简单,10分钟差不多就能搞定了,楼主先自己做一做,实在不会再喊我

大佬好,我晚上尝试着自己写了下代码,主要实现了打开指定目录下的文本,并读取,其他的步骤没什么头绪,另外,我测试的文本有一个里面内容比较多,貌似只读取了一般内容,不知道怎么回事?我写的代码如下:
import os
import docx
from docx import Document
filepath='D:\测试文件夹'
filelist=os.listdir(filepath)
for file in filelist:
    f=open(os.path.join(filepath,file),'r',encoding='utf-8')
    s=f.read()
    print(s)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-10 21:54:50 | 显示全部楼层
本帖最后由 qq1151985918 于 2021-3-10 21:57 编辑
小菜鸟12 发表于 2021-3-10 21:49
大佬好,我晚上尝试着自己写了下代码,主要实现了打开指定目录下的文本,并读取,其他的步骤没什么头绪, ...


你这基本上已经很有那么一个形状了,现在已经把文本的数据读取了出来,就剩下写入 docx 了,已经成功了一半了,读取内容应该不会读取一半的,可能有些地方有问题吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-10 22:08:56 | 显示全部楼层    本楼为最佳答案   
本帖最后由 qq1151985918 于 2021-3-10 22:20 编辑
小菜鸟12 发表于 2021-3-10 21:49
大佬好,我晚上尝试着自己写了下代码,主要实现了打开指定目录下的文本,并读取,其他的步骤没什么头绪, ...


这是我刚刚敲的代码,你可以对照一下,我的不一定对,你的不一定错,自己试试看吧
代码有点问题,你应该看得出来,反斜杠\\\\\\\\\\\\\有很多应该是 双反斜杠,而被论坛屏蔽掉了一些
import os
import docx
import openpyxl

doc_help = r"""----------------------------------------------------
请输入需要读取txt的路径
如txt文档路径为 C:\Users\Administrator\Desktop\txt\001.txt
请输入 C:\Users\Administrator\Desktop\txt
----------------------------------------------------"""
print(doc_help)
txtspath = input("请输入路径:")
files = filter(lambda x:x[-4:].lower() == ".txt",os.listdir(txtspath))

def savedocx(path,data):
    file = docx.Document()
    file.add_paragraph(data)
    file.save(path)

if not os.path.exists(txtspath + "\\data\"):
    os.makedirs(txtspath + "\\data\")
if not os.path.exists(txtspath + "\\txt-docx\"):
    os.makedirs(txtspath + "\\txt-docx\")
    
xlsxpath = txtspath + "\\data\" + "data.xlsx"

wb = openpyxl.Workbook()
ws = wb.active
ws.column_dimensions['A'].width = 30.0
ws.append(['文件名','字数'])

for file in files:
    txtpath =  txtspath + "\" + file
    docxpath = txtspath + "\\txt-docx\" + file[:-4] + ".docx"
    
    data = open(txtpath).read()
    savedocx(docxpath,data)
    ws.append([file,str(len(data))])

wb.save(xlsxpath)

print("OK")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-10 22:22:20 | 显示全部楼层
qq1151985918 发表于 2021-3-10 22:08
这是我刚刚敲的代码,你可以对照一下,我的不一定对,你的不一定错,自己试试看吧
代码有点问题,你应 ...

好的,非常感谢大佬,我先研究下,如果有问题,再来请教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 05:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表