如何用python提取excel中的上标或下标数据?
How to extract the superscript or subscript data in excel with python?
我想用python分析excel中的化学式数据。因为 excel 数据已经有了区分电荷或原子序数的格式,所以我不需要重新解释它。但是我用python阅读时遇到了一些困难。
pandas
、xlrd
、openpyxl
,甚至python-docx
、none都可以读取上标区分的数据。这一切都被视为纯文本。而且好像不能直接匹配上标或下标的格式
如果不从头解释它,我怎么能完成我的任务呢?不管python还是其他任何数据处理工具都可以。
表达复杂公式的常用方法是通过 LaTex,python 有一个名为 PyLaTex 的模块。
但是,它可能无法读取 Microsoft Format of Formulas。您可能需要搜索翻译 program/site 才能将用 *.doc 编写的公式翻译成 Latex 脚本。 - IE。
https://www.grindeq.com/
https://www.docx2latex.com/
我认为您需要在 Python 中打开您的文件,对其进行格式化并将其保存到 excel 中,然后重新进行分析。
所以这就是我的意思。
首先打开文件并将每一行放入列表中
然后做一个for循环,将各种下标和上标转换成可以区分的东西。下面是一个示例代码。
import csv
csvfile = open('file.csv')
reader = csv.DictReader(csvfile)
dictList = []
for line in reader: dictList.append(line)
csvfile.close()
# Making the modifications inside our list, which
contains
# a dictionary for each line in the CSV.
for line in dictList:
for key in line:
line[key] = line[key].replace('\', '\\')
line[key] = line[key].replace('#', '\#')
line[key] = line[key].replace('_', '\_')
line[key] = line[key].replace('&', '\&')
# Writing the new lines to a new file.
with open('output.csv', 'w') as outfile:
fieldnames = ['Field 1', 'Field 2', 'Field 3']
writer = csv.DictWriter(outfile,
fieldnames=fieldnames)
writer.writeheader()
for line in dictList:
writer.writerow(line)
我想用python分析excel中的化学式数据。因为 excel 数据已经有了区分电荷或原子序数的格式,所以我不需要重新解释它。但是我用python阅读时遇到了一些困难。
pandas
、xlrd
、openpyxl
,甚至python-docx
、none都可以读取上标区分的数据。这一切都被视为纯文本。而且好像不能直接匹配上标或下标的格式
如果不从头解释它,我怎么能完成我的任务呢?不管python还是其他任何数据处理工具都可以。
表达复杂公式的常用方法是通过 LaTex,python 有一个名为 PyLaTex 的模块。
但是,它可能无法读取 Microsoft Format of Formulas。您可能需要搜索翻译 program/site 才能将用 *.doc 编写的公式翻译成 Latex 脚本。 - IE。 https://www.grindeq.com/ https://www.docx2latex.com/
我认为您需要在 Python 中打开您的文件,对其进行格式化并将其保存到 excel 中,然后重新进行分析。 所以这就是我的意思。 首先打开文件并将每一行放入列表中 然后做一个for循环,将各种下标和上标转换成可以区分的东西。下面是一个示例代码。
import csv
csvfile = open('file.csv')
reader = csv.DictReader(csvfile)
dictList = []
for line in reader: dictList.append(line)
csvfile.close()
# Making the modifications inside our list, which
contains
# a dictionary for each line in the CSV.
for line in dictList:
for key in line:
line[key] = line[key].replace('\', '\\')
line[key] = line[key].replace('#', '\#')
line[key] = line[key].replace('_', '\_')
line[key] = line[key].replace('&', '\&')
# Writing the new lines to a new file.
with open('output.csv', 'w') as outfile:
fieldnames = ['Field 1', 'Field 2', 'Field 3']
writer = csv.DictWriter(outfile,
fieldnames=fieldnames)
writer.writeheader()
for line in dictList:
writer.writerow(line)