问题描述
我有一个Excel文件,并使用ctrl和k添加了超链接。我想最终检查链接是否存在,但是目前,我需要获取文件的绝对路径,因为文件的位置经常会更改。
这会导致excel文件中的超链接,例如“ file.pdf”或“ ../../ file.pdf”
import openpyxl
wb = openpyxl.load_workbook(r'C:\sample\sample.xlsx')
ws = wb['Index']
for row in ws.iter_rows():
try:
print( print(row[4].hyperlink.target))
p = Path(row[4].hyperlink.target).resolve() # does not resolve into "C:\...."
print(str(p))
except:
pass
解决方法
用abspath修复了它。
import openpyxl
from os.path import abspath
wb = openpyxl.load_workbook(r'C:\sample\sample.xlsx')
ws = wb['Index']
for row in ws.iter_rows():
try:
print( print(row[4].hyperlink.target))
p = abspath(row[4].hyperlink.target) #"C:\folder\link.pdf"
print(p)
except:
pass