有没有人知道我为什么会收到" FileNotFoundError的错误:[Errno 2]没有这样的文件或目录:' bcs.xlsx'"当我加载这个大小为2mb的文件时,它有大约60,000行和4列。 我尝试使用csv而不是xlsx,但我得到了同样的错误,我已经检查了数百次脚本和文件在同一目录。
答案 0 :(得分:0)
这是因为Python 不找到你的文件,错误不是谎言。
但是你的问题存在误解,你检查过该文件与你的脚本在同一个目录中,但这不是你必须做的检查。您必须检查文件是否在python脚本的当前working directory中。
要查看当前的工作目录,请使用:
import os
print(os.getcwd())
正如我们所做的那样,你可以列出这个目录:
print(os.listdir())
我不知道你是如何执行你的脚本的,但是如果你正在使用终端模拟器,给程序提供文件名的典型方法是通过参数,而不是硬编码它的名字,比如使用argparse。如果你这样做,你的shell完成可能会帮助你正确命名你的文件,如:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('file', type=argparse.FileType('r'))
args = parser.parse_args()
print(args.file.read())
现在在shell上输入:
python3 ./thescript.py ./th[TAB]
你的shell将自动完成" ./ th"到" ./ thescript.py" (当且仅当它存在时),大大降低了输入拼写错误的可能性。通常情况下,如果文件名中包含空格,例如" script.py",则您的shell应正确自动填充the\ script.py
。
此外,如果你像我一样使用argparse和argparse.FileType
,那么如果文件不存在,你将会有一个详细的错误:
thescript.py: error: argument file: can't open 'foo': [Errno 2] No such file or directory: 'foo'
但是......你已经有了一个冗长的错误。