为什么 python-docx?
Why python-docx?
import docx
import collections
listofnames = list()
filename = 'Missing_Assignments.docx'
filehandle = docx.Document(filename)
studentinfo = filehandle.paragraphs
for student in studentinfo:
if len(student.text) > 1 or len(student.text) > 20:
listofnames.append(student.text)
for name in listofnames:
if name.startswith('Assignment'):
listofnames.remove(name)
counts = collections.Counter(listofnames)
counts = dict(counts)
filehandle.add_paragraph('\n')
for name,count in counts.items():
filehandle.add_paragraph(name + ' ' + str(count))
filehandle.save(filename)
print('Complete!')
更多 learning/efficiency 问题...如果这通常被认为不合适,请让我知道哪些论坛可能更合适。
问题是,为什么我必须使用 docx?我习惯于创建一个简单的句柄,例如:
文件句柄 = 打开(文件名)
并且能够以这种方式遍历文件。在使用 python-docx 库之前,我收到了各种 UNICODE 错误。只是看起来稍微复杂一些,因为我必须使用他们的措辞,而不是像往常一样直接遍历每一行文本。
- 另外,有谁知道中断这里显示的计数功能的方法吗?我想计算一个名字出现在各种缺失作业中的次数,但仅限于那个时期。其他时期可能有同名学生,所以这会使计数复杂化吗?
docx 文件实际上是一个 zip 文件。尝试将其重命名为 xyz.zip 并解压缩。您会在多个文件夹中找到多个文件,其中大部分是 XML 个文件。这些 XML 文件具有特定格式,由 MS 为 docx 文件创建。
您可以尝试直接用 python(或您想要的任何语言)完成所有这些操作,包括所有 XML 属性和元素的含义以及不同文件之间的相互关系,或者你可以使用一个已经知道的库。
关于你的第二个问题,你没有提供任何让我猜测的数据,所以我不会。
当你有 docx 文件时,你应该使用 python-docx。
您可以打开一个简单句柄来解析纯文本文件,但docx不是纯文本格式。
它实际上是一个包含 XML 个文件的 ZIP 压缩包。您可以在此处阅读更多相关信息:https://docs.fileformat.com/word-processing/docx/
您可以为此创建自己的解析器,该标准实际上是开放的,但存在互操作性问题。您可以在这里阅读更多相关信息:https://brattahlid.wordpress.com/2012/05/08/is-docx-really-an-open-standard/
总而言之,python-docx 为您减轻了解析文件格式的负担。
import docx
import collections
listofnames = list()
filename = 'Missing_Assignments.docx'
filehandle = docx.Document(filename)
studentinfo = filehandle.paragraphs
for student in studentinfo:
if len(student.text) > 1 or len(student.text) > 20:
listofnames.append(student.text)
for name in listofnames:
if name.startswith('Assignment'):
listofnames.remove(name)
counts = collections.Counter(listofnames)
counts = dict(counts)
filehandle.add_paragraph('\n')
for name,count in counts.items():
filehandle.add_paragraph(name + ' ' + str(count))
filehandle.save(filename)
print('Complete!')
更多 learning/efficiency 问题...如果这通常被认为不合适,请让我知道哪些论坛可能更合适。
问题是,为什么我必须使用 docx?我习惯于创建一个简单的句柄,例如:
文件句柄 = 打开(文件名)
并且能够以这种方式遍历文件。在使用 python-docx 库之前,我收到了各种 UNICODE 错误。只是看起来稍微复杂一些,因为我必须使用他们的措辞,而不是像往常一样直接遍历每一行文本。
- 另外,有谁知道中断这里显示的计数功能的方法吗?我想计算一个名字出现在各种缺失作业中的次数,但仅限于那个时期。其他时期可能有同名学生,所以这会使计数复杂化吗?
docx 文件实际上是一个 zip 文件。尝试将其重命名为 xyz.zip 并解压缩。您会在多个文件夹中找到多个文件,其中大部分是 XML 个文件。这些 XML 文件具有特定格式,由 MS 为 docx 文件创建。
您可以尝试直接用 python(或您想要的任何语言)完成所有这些操作,包括所有 XML 属性和元素的含义以及不同文件之间的相互关系,或者你可以使用一个已经知道的库。
关于你的第二个问题,你没有提供任何让我猜测的数据,所以我不会。
当你有 docx 文件时,你应该使用 python-docx。
您可以打开一个简单句柄来解析纯文本文件,但docx不是纯文本格式。
它实际上是一个包含 XML 个文件的 ZIP 压缩包。您可以在此处阅读更多相关信息:https://docs.fileformat.com/word-processing/docx/
您可以为此创建自己的解析器,该标准实际上是开放的,但存在互操作性问题。您可以在这里阅读更多相关信息:https://brattahlid.wordpress.com/2012/05/08/is-docx-really-an-open-standard/
总而言之,python-docx 为您减轻了解析文件格式的负担。