如何解决如何使用脚本计算 Libre Office 文件中的字数?
我正在尝试编写一个脚本,该脚本采用包含 X 个 .odt 文件的文件夹并计算字数。它必须将它写在一个带有日期的 csv 文件中。
我尝试使用 odfpy 来做到这一点。
import odf
import glob
import pandas as pd
import os
from odf.opendocument import load as load_odt
filenames = []
word_counts = []
for f in glob.glob('*.odt'):
print(f)
doc = load_odt(f)
if doc.text.hasChildNodes():
n = 0
for e in doc.text.childNodes:
if ":text:" in e.qname[0]:
words = [w for w in str(e).split(" ") if len(w) > 0]
n += len(words)
else:
print(e.qname[0])
filenames.append(f)
word_counts.append(n)
df = pd.DataFrame({'date':[pd.Timestamp.Now() for i in range(len(filenames))],'filename':filenames,'word_count':word_counts})
print(df)
csv_filename = 'word_count.csv'
它以某种方式工作,但 CSV 中缺少一些文件。有什么想法吗?
解决方法
看起来像这样:
import odf
import glob
import pandas as pd
import os
from odf.opendocument import load as load_odt
filenames = []
word_counts = []
for f in glob.glob('*.odt'):
print(f)
doc = load_odt(f)
n = 0
for e in doc.body.childNodes:
if type(e) == odf.element.Text or type(e) == odf.element.Element:
words = [w for w in str(e).split(" ") if len(w) > 0]
n += len(words)
else:
print(type(e))
filenames.append(f)
word_counts.append(n)
df = pd.DataFrame({'date':[pd.Timestamp.now() for i in range(len(filenames))],'filename':filenames,'word_count':word_counts})
print(df)
csv_filename = 'word_count.csv'
df.to_csv(csv_filename,index = False,mode='a',header=not os.path.exists(csv_filename))
print(df.sum(axis = 0))
它的字数与 LibreOffice 的字数不完全相同,但足够了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。