引言
在给同事写一个处理excel表格脚本的过程中,发现在某些情况下,vscode终端会给拖入进去的表格文件路径前添加一个"& ",导致Python的openpyxl模块读取excel表格失败;网上关于这个问题讨论基本没有,所以记录下来。
Pythonimport openpyxl
file = input("请输入文件路径:")
with openpyxl.load_workbook(file) as workbook:
# 选择要操作的工作表
worksheet = workbook["Sheet1"]
# 读取第一行数据
first_row = worksheet.iter_rows(min_row=1, max_row=1, values_only=True)
# 遍历第一行数据
for cell in first_row:
print(cell)
& 'c:\Users\dy002\Desktop\test .xlsx'
openpyxl.utils.exceptions.InvalidFileException: openpyxl does not support .xlsx' file format, please check you can open it with Excel first. Supported formats are: .xlsx,.xlsm,.xltx,.xltm
不在vscode的终端中拖入文件,发现文件中仅会多一个引号,查询后得知:空格在命令行中通常用作参数的分隔符,引号的作用是将包含空格的文件路径作为单个参数传递给命令行。这种行为可能因操作系统和终端环境而异。不同的操作系统和终端可能会以不同的方式处理文件路径中的空格。
而上面报错正是因为vscode终端对空格的处理,就是除了添加引号外,还在前面添加了"& ",导致程序读取文件路径失败,要解决这个问题就需要去除多余的引号及"& "。
网上搜索到一个解释也印证了我的猜想
本文作者:狄云
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!