Python 有没有办法从excel工作表名称中去掉空白
我希望导入一个excel文件和一个名为“封面”的文件中的特定表格。我如何确保如果工作表名称拼写错误,例如“封面工作表”(有额外的空间),那么仍然选择了正确的工作表 这就是我目前的情况:Python 有没有办法从excel工作表名称中去掉空白,python,python-3.x,Python,Python 3.x,我希望导入一个excel文件和一个名为“封面”的文件中的特定表格。我如何确保如果工作表名称拼写错误,例如“封面工作表”(有额外的空间),那么仍然选择了正确的工作表 这就是我目前的情况: df.pd.read_excel('../blabla/bla.xlsx', sheetname='Cover sheet') 一种简单的空间移除方法是: text = "english language" text_without_spaces = text.replace(" ", "") print(te
df.pd.read_excel('../blabla/bla.xlsx', sheetname='Cover sheet')
一种简单的空间移除方法是:
text = "english language"
text_without_spaces = text.replace(" ", "")
print(text_without_spaces)
然后您可以尝试导入有空格的和没有空格的,并相应地处理错误
如果您想为这种用例提供更广泛的方法,我建议(明智地)使用difflib的SequenceMatcher。
SequenceMatcher将比较两个字符串,并返回从0(完全不同)到1(相同)的相似系数
下面是一个例子:
from difflib import SequenceMatcher
def similar(a, b):
return SequenceMatcher(None, a, b).ratio()
original_text = "english language"
test1_text = "english language"
test2_text = "Englishlanguage"
print(similar(original_text, test1_text))
print(similar(original_text, test2_text))
输出
1.0
0.9032258064516129
然后,您可以将Excel文件作为一个整体导入,并使用上述函数比较图纸名称,并在比率大于0.8时采取行动:
for sheet_name in xls.sheet_names()
if similar(sheet_name, name_to_compare) > 0.8:
# do something
请确保您考虑了误报。可能不是您想要的,但您可以获得excel文件的工作表列表,并使用xlrd从中开始工作
import xlrd
xls = xlrd.open_workbook(r'<path_to_your_excel_file>', on_demand=True)
xls.sheet_names()
导入xlrd
xls=xlrd.打开工作簿(r'',按需=True)
xls.图纸名称()
问题到底是由一个或多个空格组成,还是有更多的场景?