Python 3.x Python 3将.docx格式的歌曲转换为.txt格式,以便和弦正确对齐

Python 3.x Python 3将.docx格式的歌曲转换为.txt格式,以便和弦正确对齐,python-3.x,text,docx,Python 3.x,Text,Docx,我正在尝试编写一个程序,可以将.docx格式的歌曲(无图像)转换为Python3中的.txt。我所说的歌曲是指歌词,上面一行的和弦在Word中打开时是这样的: C F Am G This is a song that I want to convert 我最初使用的是python docx,但它对某些歌曲不起作用,因为有些和弦是超链接的,所以我不得不使用docx2txt: import docx2txt doc = docx2txt.pr

我正在尝试编写一个程序,可以将.docx格式的歌曲(无图像)转换为Python3中的.txt。我所说的歌曲是指歌词,上面一行的和弦在Word中打开时是这样的:

  C        F           Am         G
This is a song that I want to convert
我最初使用的是python docx,但它对某些歌曲不起作用,因为有些和弦是超链接的,所以我不得不使用docx2txt:

import docx2txt

doc = docx2txt.process('RandomSong.docx')
print(doc)
#Adapted from https://github.com/ankushshah89/python-docx2txt
这和“import docx”的等效代码将两行打印到屏幕上,但不幸的是没有打印与下面的单词对齐的和弦,因此在解释器中,以及随后在文本文件中,它们看起来像这样:

   C             F                Am           G
This is a song that I want to convert
我理解这是因为在word中,空格的大小与其他字符不同,而就文本编辑器而言,它们的大小都是相同的(如果我错了,请纠正我)


因此,基本上,我如何使用Python 3将带有超链接的docx歌曲转换为txt(最好是使用docx2txt),同时仍然在正确的位置保留和弦,如果文件显示在MS word中,有没有办法计算出和弦下的单词,并调整txt版本中的空格量,使和弦与正确的单词对齐?

我想您必须加载字体,获得每个字符的宽度,然后进行计算(推导出每个字符的x位置)。我真的不明白你怎么能不这样做。谢谢你的建议,问题是我似乎找不到任何方法从python 3的文档中提取字体,因为它不一定是通过样式应用的。