【Python】读取excel文件的时候,遇到“Excel file format cannot be determined”的问题
使用os.path 读取路径下的文件,并拼接文件名,可能会遇到这个问题:
ValueError: Excel file format cannot be determined, you must specify
an engine manually.
因为我用的是相对路径的拼接的方法,读取出来会有这样的问题:
读取出来的文件路径是:
~$文件名.xlsx
文件前面有~$这样的符号,导致读取出来的文件名字是乱码的。
我读取文件的写法如下:
import os
# 提取目录部分的路径入口
dir_path = os.path.dirname(full_path)
# 定义新的文件名
new_file_name = "new_example.txt"
# 拼接新的文件路径,路径+文件名
file_path= os.path.join(dir_path, new_file_name)
# 检查文件是否存在
if os.path.exists(file_path):
# 使用 with 语句打开文件
with open(file_path, 'r') as file:
content = file.read()
print(content)
else:
print(f"文件 {file_path} 不存在")
解决方法:
导致上面的问题,可能是我们在python里读取excel文件的时候,也同时手动打开了这个文件。
于是生成了不属于这个文件夹下的一个隐藏文件,并且把它读进去了。
我们可以在文件所在的路径下,看到一个【隐藏的项目】的选项,点进去看看是否有个“幽灵文件” 就可以了。
关闭打开的文件,再重新运行程序看看能不能解决?

如果还是有这个问题的话,可以在python中,读取路径下所有文件时,排除读取隐藏文件的方法,就可以简单避免这个问题了
代码如下:
import os
# 设置你的目录路径
dir_path = 'your/directory/path'
# 遍历目录下的所有文件和目录
for entry in os.listdir(dir_path):
# 构建完整的文件或目录路径
full_path = os.path.join(dir_path, entry)
# 检查这是否是一个隐藏文件或目录
if not entry.startswith('.'):
# 这里可以处理非隐藏文件或目录
if os.path.isfile(full_path):
print(f'File: {full_path}')
elif os.path.isdir(full_path):
print(f'Directory: {full_path}')
或者改用读取绝对路径的方法打开excel的方法来试试看!
浙公网安备 33010602011771号